Design and development of GIS software applications
Software engineering, OO and components models, programming in VBA/ArcObjects for ArcGIS 8.x/9™
Brochure (not available) Registration module (not available)
The course aims at introducing to VBA (Visual Basic for Applications)/ ArcObjects programming for ArcGIS 8x/9, after a preliminary review of fundamental principles of OO (Object Oriented) and COM (COMponents-based) models. Course will specifically address programming issues related to geographical data management and querying, in the framework of the new geodatabase model, and geodata analysis. ArcGIS 8/9™ is the new leading standard in GI industry, supporting advanced integration in the main IT stream also thanks to its new component-based architecture and geographical database model (geodatabase). In this framework, old-style ArcView 3.x™ script language Avenue leaves its place to more advanced programming paradigms and standards, including VBA, Visual Basic and Visual C++; these languages support full access to software platform features by accessing the components library ArcObjects.The course is part of a wider GIScience learning project, addressing both introductory and advanced issues, including a specialization path in environmental applications development and management, with interests spanning through such different fields as geology, environmental sciences, urban planning, land use, IT, just to recall few of them.
ProgramDetailed course program, based on a mixed theory and hands-on formula, follows:
Introduction to software engineering and programming
- Software extended definition: software engineering, programming, system and user documentation, configuration files and data. Software development in the framework of GIScience: scopes, philosophy and techniques addressing GIS software platforms personalization, development of completely new applications. Readibility, manteinability and portability
- Software Engineering : specifications, design, project management, implementation, debugging/testing, performance analysis, documentation, software life cycle, UML (Unified Modelling Language) fundamentals, geodatabase design and development extending origina ArcInfo model in MsVisio 2000. Classes hierarchy, objects instantiation and prototyping analysis based on RAD (Rapid Application Development) tools.
- Object oriented programming: fundamental concepts of class, object, composition, inheritance, messages and polymorphism, autoreference variables (this/self/me), constructors/destructors. Main strengths against traditional procedural programming.
- Components-based model: concepts of factory, interface, interfaces inheritance, composition. Relevant strengths in a client/server distributed applications environment.
- JAVA™/BlueJ™: JAVA™ language history, introduction to BlueJ™ development environment, both ones available for free from the net. Short review of fundamental concepts underlying OO model: classes, methods, messages passing, inheritance, abstract methods and interfaces, SWING and AWT graphical classes.
- Critical review of few didactical case studies, relevant to introducing ArcObjects/ArcGIS 8/9.x™ components-based model .
- Variables and constants, native types (bits and bytes, integers and long integers, single or floating-point, double, boolean, strings), RAM addresses and pointers, static and dynamic arrays (sizing, initializing, accessing), bits operators, ASCII and binary files (opening, writing, reading and closing).
- Programming methods: flow and iterations control, subroutines and functions, variables passing by value and by reference (by memory address), variables scope, return values, recursion. Events-based programming concepts. Events and errors management at run-time.
- Fundamentals of VBA (Visual Basic for Application) for ArcGIS 8.x/9™ development environment: accessing, toolboxes and support tools, code development, compiling and debugging.
- Properties and methods of VBA standard objects: form, textBox, Label, Frame, CommandButton, CheckBox, OptionButton, ListBox, ComboBox, PictureBox, ScrolBar, DriveListBox, DirListBox, FileListBox, Timer, graphical controls (point, line, circle), menu and controls array. Multi-form applications architecture e methods load / unload / hide . Graphics: coordinates reference systems, color management, graphical methods, images at design and run-time , scale and animation management.
- Case studies analysis and development, focused on concepts above, addressing spatial data management, visualization and analysis issues: IDW ( I nverse D istance W eight) regionalization, computation of global autocorrelation Moran I index, etc...
- ArcGIS commands, Customize dialog box, new commando creation, properties settings and source code, debugging , toolbar creation and macro-linking. Programming classes and objects. Object browser, design and run time objects creation, Set statement. ArcObjects components based model (COM classes, interfaces, polymorphism, methods, properties, references to other interfaces), classes types ( abstract , instantiable e creatable ), inheritance relationships, properties and interfaces, relationships, settings and properties reading.
- Maps and layers accessing and management, , iterations through collections, adding and settino new layers , accessing ArcMap TOC (Table Of Contents ) and querying/editing data sources.
- Data managementi : data sources (shape, coverage and geodatabase), techniques and interfaces to access main objects (workspace, dataset, table, object, feature, query, cursor, selection, relationship, domain, fields, fields collection, rows ).
- Geometry management and geoprocessing : geometry creation and updating, cursors selection, topological and spatial operators ( ItopologicalOperator , IRelationalOperator , IProximityOperator ), shape and alphanumeric attributes. Abstract classes (polylines, polygons, points, curves, envelope).
- Prototype development, focusing on architecture and main features of an application addressing creation, management, querying and analysis of a geodatabase developped in ArcGIS 8.x/9™ environment.
SoftwareSuite di Office Automation MsOffice™, RDBMS MsAccess™ (www.microsoft.com), JAVA™™ (http://java.sun.com), and VBA™ programming languages (www.microsoft.com), Bluej™ (www.bluej.org) for JAVA™, GIS ArcGIS 8x/9™ (www.esri.com).
Who is it for?The course is well suited for people involved, at both technical and managerial responsibility level, in the design and development of geospatial applications focused on spatial data management, analysis and modelling. University students, enrolled in the last year of their degree course, and recently graduated people can equally benefit from the course. Many different application sectors can highly benefit from the completely new perspective of this course, including urban planning, natural, geological and environmental sciences, Information Technology. Prerequisite is an in-depth knowledge of PC environment and MsOffice ä software package, as well as basic knowledge of GIScience foundations and ESRI ArcView 3.x™ and/or ArcGIS 8/9™. It is recommended that attending people are genuinely interested in applications development issue. No previous programming experience is assumed, also if previous experience in programming (i.e. in a traditional procedural language environment) can undoubtedly help to make learning path smoother.
Location & datesThe course will take place at the Environmental Education Centre Casa Archilei , located in Fano (PU) and easily accessible from major transport links. The course will have a duration of 48 hours, with 8 hours lessons, on 17-18 April, 15-16 May and 12-13 June 2009.
RegistrationCourse fees are 1300€ + VAT (20%), to be paid in a unique instalment before starting date. Fees are reduced to 1200€ + VAT (20%) for participants with their own notebook. Further fees reduction is applicable, based on conditions stated below.
Registration before March 15th, 2009
Participants in previous GIScience courses promoted by www.GIScience.it
Students regularly enrolled in degree, post-degree and Phd courses at italian or foreign universities at the moment of registration
Education Institutions, public and private companies enrolling more than one person
CertificateAt the end of the course, participants attending at least 70% of the lessons will be awarded a Completion certificate.
Didactic materialDocumentation about course relevant issues, source code in JAVA, VBA and VBA/ArcObjects will be made available to participants on optical media. The course adopts the following textbook, included in registration fees: Burke R., 2003. Getting to know ArcObjects – Programming ArcGIS with VBA. ESRI Press, Redlands, California (including a CDROM with a complete collection of ArcObjects models, input and output geodata used in exercises). Scientific literature and Web resources on software engineering issues, JAVA and VBA applications development, design and programming of geographical applications, personalization of general purpose GIS software platfroms, are extremely wide. Few textbooks are recommende here below:
- Bradley J.C. and Millspaugh A.C., 1998. Visual Basic: guida alla programmazione. McGraw-Hill Libri Italia Srl
- Walnum C., 1999. The complete idiot’s guide to Visual Basic 6. Ed. Alpha Books, 201 West 103rd St., Indianapolis, USA (include CDROM Visual Basic 6 Working Model edition)
- Kang-Tsun C.,2005. Programming ArcObjects with VBA. Ed. CRC Press LLC, Boca Raton, Florida, USA
- Barnes D.J. and l Kölling M., 2008. Objects First with Java - A Practical Introduction using BlueJ. Ed. Prentice Hall / Pearson Education.
- Wood J., 2002. JAVA programming for spatial sciences. Taylor & Francis, London, UK
Applications developed in the framework of the last edition of the course,
currently under revision in the framework of a publication project, will be
reviewed. They actually include specialistic examples related to geological
and environmental sciences, land use and socio-economic fields, ranging from
regionalization, autocorrelation indexes computation, advanced 3D geodata
visualisation and GUIs development.
Participants can access a trial copy of ArcGIS™ buying the textbook: