Software Post Requirements Specification Document Grass Drafted by: Di Simone Alessio 068/100005 Di Sorbo Alessandro 068/100254 Ragni Domenico 068/100006 Romano Enrico 068/100030 Serino Antonio 068/100061 Supervision by: Prof. Antoniol Giulio Approved by: Title Date Signature Prof. Antoniol Giulio Romano Enrico Di Simone Alessio Di Sorbo Alessandro Ragni Domenico Serino Antonio Team Supervisor Team Leader Team Member Team Member Team Member Team Member 3/15/02 SF.BART
Index Software Requirements Specification Document 1 Introduction...2 1.1 Background...2 1.2 Purpose & Scope...3 1.3 Glossary of Terms...4 1.4 Definitions, Acronyms and Abbreviations...5 1.5 References...5 1.5.1 PostGrass Project Documents...5 1.6 Overview...6 2 Overall Description...7 2.1 Product Perspective...7 2.2 Product Functions...7 2.3 User Charateristic...8 2.4 Constraints...8 3 Specific Requirements...9 3.1 External interface requirements...9 3.2 Function Requirements...9 3.2.1 Overview of DataBase Interaction...9 3.2.1.1 Create a DataBase with PostGIS extension Use Case...10 3.2.1.2 Drop a DataBase with PostGIS extension Use Case...11 3.2.2 Overview of PostGrass System Interaction...12 3.2.2.1 Open a connection on a PostGrass DataBase...13 3.2.2.2 Perform a write line on the DataBase...14 3.2.2.3 Perform a rewrite line on the DataBase...15 3.2.2.4 Perform a read line on the DataBase...16 3.2.2.5 Perform a read next line on the DataBase...17 3.2.2.6 Perform a rewind on the DataBase...18 3.2.2.7 Close a connection to a PostGrass DataBase...19 3.3 Design Constraints...20 3.4 Software System Attributes...20 3.4.1 Reliability, Availability, Security, Maintainability, Portability...20 3/15/02 1 SF.BART
1 Introduction This document is the first artifacts in the development life cycle of the product. It s a guideline for designers and developers about the functionalities performed and the problems that the system solves. 1.1 Background Project title: PostGrass GRASS extension to the PostGIS functionalities Rapid overview on the project environment: GRASS (Geographic Resources Analysis Support System) is a raster based GIS, vector GIS, image processing system, and graphics production system. GRASS contains over 200 programs and tools to render maps and images on monitor and paper; manipulate raster, vector, and sites data; process multi spectral image data; and create, manage, and store spatial data. GRASS uses both an intuitive windows interface as well as command line syntax for ease of operations. GRASS can interface with commercial printers, plotters, digitizers, and databases to develop new data as well as manage existing data. GRASS is ideal for use in engineering and land planning applications. Like other GIS packages, GRASS can display and manipulate vector data for roads, streams, boundaries, and other features. GRASS can also be used to keep maps updated with its integral digitizing functions. Another feature of GRASS is its ability to use raster, or cell, data. This is particularly important in spatial analysis and design. GRASS functions can convert between vector data to raster data for seamless integration. GRASS strengths lie in several fields. The simple user interface makes it an ideal platform for those learning about GIS for the first time. GRASS is capable of reading and writing maps and data to many popular commercial GIS packages including ARC/Info and Idrisi. Users wishing to write their own code can do so by examining existing source code, interfacing with the documented GIS libraries, and using the GRASS Programmers Manual. This allows more sophisticated functionality to be integrated in GRASS. The ability to work with raster data gives GRASS the unique ability to function as a surface modeling system. GRASS contains more than 100 multi function raster analysis and manipulation commands. Surface processes such as rainfall runoff modeling, flowline construction (as shown), slope stability analysis, and spatial data 3/15/02 2 SF.BART
analysis are just a few of the many applications of GRASS to engineering and land planning. Since many of the raster tools are multi functional, users can create their own maps from GRASS data analysis. In addition to standard two dimensional analysis, GRASS allows users to view data in three dimensions. Raster maps, vector maps, and sites data can be used for visualization. Example applications of such capabilities include airspace analysis for airport planning (as shown), terrain analysis and flybys, and spatial trends. Tools in GRASS allow the user to animate any spatial data available with options to switch between data layers on the fly. Data used in 3 D visualization may also be saved as still pictures, or as mpeg movie files for later replay and analysis. Accompanying its land planning and engineering applications, GRASS contains a suite of tools to aid in hydrologic modeling and analysis. Currently, tools are also available for performing such functions as watershed analysis, curve number generation, flood analysis, and stream channel characteristics for comprehensive watershed modeling. Other GRASS programs can generate graphs, statistics, and charts of modeled and calibrated data. Additionally, GRASS can use field data for model input or simulate parameters based on numerical data. In addition to the traditional command line version of GRASS, a new user interface, based on Tcl/Tk has been written. This puts the power of spatial analysis and modeling into an easy to use Graphical User Interface that is platform independent. This intuitive user interface lets users quickly and easily view, manipulate, and use data. Nearly all of the programs available in GRASS are available in the new GUI, with the standard command line still available, giving users all of the functionality of GRASS. [Refer to GRM for more information] 1.2 Purpose & Scope A new GRASS vector format and library is under development (GRASS 5.1).The new vector support is based on flat files for geometry and RDBMS for attributes. This solution is suitable for many tasks but doesn t allow simultaneous editing by more users and all the other advantages available for RDBMS. The idea for GRASS 5.1 is to support both flat files and RDBMS for geometry. This research should result into working code applicable to future version of GRASS and discover potential problems. The aim is to write (modify) all the functions which writes and reads primitives to/from PostGIS database tables. 3/15/02 3 SF.BART
1.3 Glossary of Terms A B C D E F Function A defined objective or characteristic action of a system or component. A software module that performs a specific action, is invoked by the appearance of its name in an expression, may receive input values and returns a single value. G H I Interface A connection between two devices or systems. J K L Library A controlled collection of software and related documentation designed to aid in software development, use or maintenance. M N Network Describes the physical hardware and software connections between computers allowing information to be shared and electronic communications to take place. O P Patch A modification made directly to an object program without reassembling or recompiling from the source program. Portability The ease with which a system or component can be transferred from one hardware or software environment to another. Project The combined resources (people, machines, materials), processes, and activities that are dedicated to building and delivering a product to a customer. Q 3/15/02 4 SF.BART
R Requirements The statement of needs by a user that triggers the development of a program, system, or project. May be called business functional requirements or requirement specifications. S T U V W X Y Z 1.4 Definitions, Acronyms and Abbreviations GRASS Graphical Resources Analysis Support System SFRD or PSFRD PostGrass Software Feasibility Research Document SRS or PSRS PostGrass Software Requirement Specification Document SDD or PSDD PostGrass Software Design Description Document TVRRD or PTVRRD PostGrass Test or Validation Result Report Document UD or PUD PostGrass User Documentation TBD To Be Determined CD Create a DataBase with PostGIS extension Use Case DD Drop a DataBase with PostGIS extension Use Case OCD Open a connection on a PostGrass DataBase PWD Perform a write line on the DataBase PRD Perform a rewrite line on the DataBase PRDD Perform a read line on the DataBase PRND Perform a read next line on the DataBase PRWD Perform a rewind on the DataBase CCD Close a connection to a PostGrass DataBase 1.5 References The following document are used as design and development requirements of the PostGrass system parts. 1.5.1 PostGrass Project Documents Grass Reference Manual (GRM) PostGrass Software Feasibility Research Document (SFRD) 3/15/02 5 SF.BART
1.6 Overview The document is organized following the IEEE std 830 1998. 3/15/02 6 SF.BART
2 Overall Description 2.1 Product Perspective The product PostGrass is not a complete system, but it s an integral part of the Software GRASS. This document will be useful during the development of future project tied to the functionalities implemented in the PostGrass project. 2.2 Product Functions Create a DataBase with PostGis extension (PostGrass DataBase) ~ Drop a DataBase with PostGis extension (PostGrass DataBase) ~ Open a connection to a PostGrass DataBase ~ Close a Connection to a PostGrass DataBase ~ Perform a read line on the DataBase ~ Perform a read next line on the DataBase ~ Perform a rewind on the DataBase Reset the reading status to the first read line Perform a write line on the DataBase ~ Perform a rewrite line on the DataBase ~ 3/15/02 7 SF.BART
2.3 User Characteristic A PostGrass User is the PostGis user which own the table defined in the frmt file example relative to a PostGrass DataBase as indicated in the Feasibility Research Document (SFRD). Every User has reading permission on every table. 2.4 Constraints Library must be reliable in multi user environment (for writing). Simultaneous write access by more clients must be available. Library should be optimized for speed. Binary cursors should be used, and geometry read directly from geometry structure. Solution must be platform independent, please pay attention to byte order issues. The solution must permit to handle: Native vector on local machine. Native vector on NFS. PostGIS vector on a local server. PostGIS vector on a remote server (other machine in network). 3/15/02 8 SF.BART
3 Specific Requirements 3.1 External interface requirements. 3.2 Function Requirements 3.2.1 Overview of DataBase Interaction 3/15/02 9 SF.BART
3.2.1.1 Create a DataBase with PostGIS extension Use Case Use Case Id: CD Use Case: Create a DataBase with PostGIS extension Use Case Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: User postmaster Postgis features and DataBase name Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: Perform a creation correctly ~ Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 12/02/02 Developers Notes: ~ 3/15/02 10 SF.BART
3.2.1.2 Drop a DataBase with PostGIS extension Use Case Use Case Id: DD Use Case: Drop a DataBase with PostGIS extension Use Case Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User Postmaster PostGIS features and DataBase name Perform a drop correctly CD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 12/02/02 Developers Notes: ~ 3/15/02 11 SF.BART
3.2.2 Overview of PostGrass System Interaction Software Requirements Specification Document 3/15/02 12 SF.BART
3.2.2.1 Open a connection on a PostGrass DataBase Software Requirements Specification Document Use Case Id: OCD Use Case: Open a connection on a PostGrass DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a connection correctly CD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 12/02/02 Developers Notes: ~ 3/15/02 13 SF.BART
3.2.2.2 Perform a write line on the DataBase Software Requirements Specification Document Use Case Id: PWD Use Case: Perform a write line on the DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a write line correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 14/02/02 Developers Notes: ~ 3/15/02 14 SF.BART
3.2.2.3 Perform a rewrite line on the DataBase Software Requirements Specification Document Use Case Id: PRD Use Case: Perform a rewrite line on the DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a rewrite line correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 14/02/02 Developers Notes: ~ 3/15/02 15 SF.BART
3.2.2.4 Perform a read line on the DataBase Software Requirements Specification Document Use Case Id: PRDD Use Case: Perform a read line on the DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a read line correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 14/02/02 Developers Notes: ~ 3/15/02 16 SF.BART
3.2.2.5 Perform a read next line on the DataBase Software Requirements Specification Document Use Case Id: PRND Use Case: Perform a read next line on the DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a read next line correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 14/02/02 Developers Notes: ~ 3/15/02 17 SF.BART
3.2.2.6 Perform a rewind on the DataBase Software Requirements Specification Document Use Case Id: PRWD Use Case: Description: Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: Perform a rewind on the DataBase Reset the reading status to the first read line User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a rewind correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 14/02/02 Developers Notes: ~ 3/15/02 18 SF.BART
3.2.2.7 Close a connection to a PostGrass DataBase Software Requirements Specification Document Use Case Id: CCD Use Case: Close a connection to a PostGrass DataBase Description: ~ Exceptions: Actors: Use Case Extends: Use Case Uses: Use Case inputs/preconditions: Use Case outputs/postconditions: Acceptance Criteria: Related Expectations: Related Use Cases or Requirements: User defined in the frmt file concerning vector PostGIS features and DataBase features Perform a close correctly CD, OCD Keywords: ~ Status Release Priority Stability Understanding Level Final 1 Stable Stable Known Version Date Compiled by 1 12/02/02 Developers Notes: ~ 3/15/02 19 SF.BART
3.3 Design Constraints Must use C programming language to develop the project. Must use postgresql with PostGIS extension. 3.4 Software System Attributes 3.4.1 Reliability, Availability, Security, Maintainability, Portability The product satisfied the committent requirements when: We develop a patch file for pgrass. The patched pgrass must be able to import/export ascii files (v.in/out.ascii grass module) to postgres and data created in postgres tables must be readable by PostGIS functions and identical with original ascii files. The functionality will be tested on mcat and multi from pgdata package in the same way which can be seen in io script in pgdata. The simultaneous write access by more clients must be available. The short report about technical problems faced during the project and ideas for future development and improvements. 3/15/02 20 SF.BART
Developed by SF.BARTeam segmentation fault beyond any reason team sf.bart@yahoo.it 2002 3/15/02 21 SF.BART