PS1-MOPS SOURCE CODE DOCUMENTATION

Size: px
Start display at page:

Download "PS1-MOPS SOURCE CODE DOCUMENTATION"

Transcription

1 PS1-MOPS SOURCE CODE DOCUMENTATION DRAFT D. Chang Institute for Astronomy University of Hawaii at Manoa An overview of using Doxygen to processed embedded documentation in PS1-MOPS Perl source code is provided. The goal is to be able to automatically generate documentation at the program/class-level and the subroutine-level. This may be accomplished using Doxygen and a filter specific to Perl as Doxygen does not natively support Perl. Example documented source code is provided along with actual Doxygen-generated HTML output. INTRODUCTION This document provides an overview of using of Doxygen [1] for PS1-MOPS Perl source code. Doxygen does not have native support for Perl. However, it may be used to generate documentation from Perl code if the code is first preprocessed so that Doxygen-compatible input is produced. This is accomplished using a filter [2]. The source code may then contain commands that are analogues to Doxygen commands to produce an equivalent level of documentation from comments embedded in Perl source code. The initial benefit of this documentation creation method is a hyperlinked HTML API reference containing both module-level and subroutine-level documentation. The scope of this generated documentation is intended to span the range from the user-level to the programmer-level with an emphasis on documentation to support code maintenance and development. One of the most common documentation systems in use with Perl is POD (plain old documentation). The guidelines for Doxygen-compatible documentation are derived in large part from conventional implementations of POD. Use of Doxygen is intended to provide the same usability as POD but augmented by the added flexibility of Doxygen. The purpose is to develop a general method of documentation that applies to all aspects of PS1-MOPS programming. This is made possible by Doxygen. PROGRAMMING ELEMENTS Source code follows the hierarchy of namespace, class, and subroutine. In Perl, namespaces are indicated by the directories that contain modules. Classes are, in general, the same as modules. Modules may also be called packages. Subroutines consist of either functions or object methods. These programming elements are common to all object-oriented programming languages.

2 COMPARISON WITH POD Perl modules are often documented using POD format. Advantages of POD include programmer familiarity due to its ubiquity, usability with established tools such as perldoc, and overall simplicity in its implementation. While POD does not mandate a set of categories for which to include documentation, a number of common ones that are often addressed are listed below. For documentation of MOPS source code, it is suggested that embedded documentation cover the categories listed below thereby providing equal utility with conventional POD documentation. NAME The name of the module that typically includes a brief description separated from the name by three characters: space, dash, space. SYNOPSIS Includes examples of usage. DESCRIPTION A detailed description of the module. FUNCTIONS Subroutines that are not specific class methods. METHODS Subroutines that are implemented by a specific class/object. WRITING DOXYGEN-COMPATIBLE DOCUMENTATION IN PERL Doxygen does not natively support documentation in source code comments in Perl. However, Perl code documentation may be parsed by Doxygen by preprocessing the Perl code through a filter. The filter result, being in Doxygen-format, can then be parsed by Doxygen. The source code must contain commands recognizable by the filter. These commands, and how to format Perl code documentation so that is compatible with a Doxygen filter, are described henceforth. PROGRAM/CLASS-LEVEL DOCUMENTATION Classes generally correspond to individual Perl modules. Executable Perl scripts are considered to be independent programs. Program/class-level documentation in the source code mostly corresponds to the kind of documentation that might be found in a manual page. It is intended to provide an overview of the class along with usage examples. The following list describes Doxygen filter commands for program/class-level documentation. Doxygen filter commands Corresponds to Doxygen command \file. Used to describe the contents of a file. The filename should be listed here along with a brief description followed by a detailed description. This section maybe used to provide the POD content found under the headings: NAME, SYNOPSIS, and DESCRIPTION. Corresponds to Doxygen command \class. Used to describe a class. The class name along with a detailed description should be defined here. Note that the classes specified using command is the only way for Doxygen to identify classes. It is important that they be specified. Paragraphs may be created using command. Note command is preceded by a single hash mark. Text on the same line as command will print as a header in the output. PS1-MOPS Source Code Documentation 2

3 Text notated as note text. Provide comma-separated list of references to other items of relevance. SUBROUTINE-LEVEL DOCUMENTATION Subroutines include both functions and methods. This level of documentation is intended to be comprehensive. Every function and method should include a basic set of documentation. Each subroutine name may be preceded with its access scope. Available scopes are public, private, and protected. Undefined scopes default to public. The primary set of Doxygen filter commands is listed below. Doxygen filter commands Corresponds to Doxygen command \fn. Used to describe a function including its parameters and return value. Used to describe an object method. Used to describe a class method. Describe a parameter to a function. Describe the return value for a function/method. VERSIONS Software versions are an essential documentation component. Versioning will be managed by CVS using the CVS tag $Revision: $. For Perl, the conventional $VERSION variable will be used. Many popular Perl programs, such as ExtUtils::MakeMaker or Module::Build, make use of this variable to determine module versions. To obtain a standard version number for Perl modules, typically having extension.pm, the following code [3] should be included in each module. our $VERSION = sprintf "%d.%d", q$revision: $ =~ /(\d+)/g; When this code is committed to CVS, the version number will be placed after Revision:. For example, given a CVS revision of 1.1 the result in the source code will be our $VERSION = sprintf "%d.%d", q$revision: 1.1$ =~ /(\d+)/g; When the module version needs to be referenced, it can be obtained using the following code. use module_name; $module_version = $module_name::version; The variable $module_version will have the value 1.1. Perl executables, typically having extension.pl, cannot be imported using use, though they can be imported using require but this causes them to be executed which is generally not wanted. Therefore, an alternative method of version number retrieval will be used. Perl executable code should still contain the our $VERSION line defined previously. To make the CVS revision number available, executables should implement the command-line option --version so that the following statement will correctly retrieve the CVS revision number defined in the source code. PS1-MOPS Source Code Documentation 3

4 $ executable_name.pl --version USING DOXYGEN Use of Doxygen with Perl requires two files: a configuration file (doxy-config) and a filter configuration file (perl-doxy-config). The configuration files define the location of the source code to be processed along with the destination of the output. They also define various features of the output. The intention of using Doxygen with MOPS is to generate an HTML API reference. To specify a filter to be used by Doxygen, configure the following option: INPUT_FILTER = doxygenfilter Once the configuration files have proper definitions, Doxygen may be executed via the command-line using: $ doxygen perl-doxy-config DOXYGEN HTML DOCUMENTATION FEATURES Some of the features present in Doxygen-generated HTML documentation are listed below. File list Contains all the files parsed by Doxygen. The files to be included are denoted by a pattern in the Perl Doxygen configuration file. Class list Only those items notated will be included in this category. Source code Doxygen provides for viewing partially colorized source code directly in the HTML API reference. Formatted descriptions Formatting includes lists and emphasized text along with paragraphs and paragraph titles. Program/class-level descriptions are referenced through Doxygen file references found in the File list. Function/method documentation Information includes access scope, a description, parameters, and return values. Functions/methods are grouped by access scope. AUTOMATIC DOCUMENTATION GENERATION The presence of properly formatted source code documentation allows for the automatic generation of a documentation set for the code. To facilitate current documentation for the MOPS code base, documentation will be extracted, formatted and updated on a nightly basis. FUTURE WORK Doxygen has an extensive feature set and can serve extended purposes beyond those described herein. Some additional areas of documentation development are listed below. Automatically determine missing documentation items for source code. Tweak filter so that embedded commands have greater consistency in formatting. Provide equivalent support for Python source code. Implement more features of Doxygen such as call graphs and LaTeX documentation generation. PS1-MOPS Source Code Documentation 4

5 CONCLUSION The guidelines presented in this document allow for documentation that serves a broad range of requirements for PS1-MOPS documentation. They allow for the generation of a comprehensive documentation set for MOPS source code with minimal programmer manual overhead. A useful, subset of the features of Doxygen have been described that facilitate the achievement of PS1-MOPS documentation goals. PS1-MOPS Source Code Documentation 5

6 File example_perl_module.pm APPENDIX The following code lists an example Perl module containing embedded documentation along with Doxygen filter commands. package example_perl_module; # Doxygen filter commands are preceded by ##. example-perl-module.pm # A sample Perl module with commands for Doxygen documentation. DESCRIPTION # This is the start of the detailed description for the module. The brief # description may be seperated from the detailed description by an empty line. # Multiple lines may be present, but the first sentence or phrase, after the # filename, is considered to be the brief description for the file. SYNOPSIS # One application of this feature is to replicate POD-style documentation. # Usage examples may appear here. # Lists with bullets may be included. # - List item 1. # - List item 2. # Numbered lists are available. # -# List item 1. # -# List item 2. # Text may emphasized. This is a note included in the file section. example-perl-executable.pl example_perl_module # The text here is a brief description of the class. Paragraphs do not require headings. # There are no blank lines in this comment block. Following this text is a # detailed description of the class that may consist of multiple lines. # Additional paragraphs may be created. Note that \@par exists on its own line. use strict; our $VERSION = sprintf "%d.%d", q$revision: $ =~ /(\d+)/g; public new() # Template for a typical Perl object constructor. param1 First parameter. param2 Second parameter. example_perl_module object reference. sub new { my ($class,%arg)=shift; my %args = validate(@_, { param1 => 1, param2 => 0, ); bless($self,$class); return $self; PS1-MOPS Source Code Documentation 6

7 public getsomevalue() # Template for a typical Perl accessor. Some value. sub getsomevalue { my($self)=shift; This is an arbitrary code note. This is a todo line. return $self->{_value; nonspecific_scope_function() # An example function without specified access scope. param1 Parameter 1 description. param2 Parameter 2 description. 1 for true, 0 for false. sub nonspecific_scope_function { my (%arg)=@_; return 1; private _example_private_function1() # An example private function. param1 Parameter 1 description. 1 for success, 0 for failure. example_public_method1(), example-perl-executable.pl sub _example_private_function1 { my ($param1)=@_; return 1; # This example includes a return value after the scope declaration. # By default, Doxygen doesn't include return values in the documentation unless # they are specified. public void example_public_method1() # An example public method. param1 Parameter 1 description. Void. sub example_public_method1 { my ($self,%arg)=@_; protected example_protected_method() # An example protected method. param1 Parameter 1 description. sub example_protected_method1 { my ($self,%arg)=@_; 1; END PS1-MOPS Source Code Documentation 7

8 Doxygen HTML documentation output for example Perl module PS1-MOPS Source Code Documentation 8

9 PS1-MOPS Source Code Documentation 9

10 File example-perl-executable.pl The following code lists an example Perl module containing embedded documentation along with Doxygen filter commands. #!/usr/bin/perl -w example-perl-executable.pl # A Perl executable containing examples for Doxygen documentation. DESCRIPTION # This is an example Perl executable containing source code documentation to # be parsed by a Doxygen filter. Multiple lines may be present, but the first # sentence or phrase, after the filename, is considered to be the brief # description for the file. SYNOPSIS # Inserting a CR/linefeed is demonstrated here. # Run by calling\n # \$./example-perl-executable.pl use strict; our $VERSION = sprintf "%d.%d", q$revision: $ =~ /(\d+)/g; PS1-MOPS Source Code Documentation 10

11 main(); main() # An example main function for a Perl executable. sub main { # Function takes no arguments. nonspecific_scope_function() # An example function without specified access scope. param1 First parameter. 1 for true, 0 for false. sub nonspecific_scope_function { my($param1)=@_; return 1; END PS1-MOPS Source Code Documentation 11

12 Doxygen HTML documentation output for example Perl executable 1 Doxygen is the version of the software used during the creation of this document. 2 Doxygen Filter 1.01 is the filter used to process Perl files using Doxygen. It was obtained from 3 The formatting is dependent upon the type of revision numbers in use. PS1-MOPS Source Code Documentation 12

UNIVERSITY OF HAWAII AT MANOA

UNIVERSITY OF HAWAII AT MANOA Pan-STARRS Document Control UNIVERSITY OF HAWAII AT MANOA Institute for Astrononmy Pan-STARRS Project Management System Structure and Function of the PS-MOPS Testing System Grant Award No. Prepared For

More information

Comp151 Lab Documentation using Doxygen

Comp151 Lab Documentation using Doxygen Comp151 Lab Documentation using Doxygen Supplementary Notes By Adam Information in this slide is extracted from Doxygen homepage: http://www.stack.nl/~dimitri/doxygen/ and Javadoc reference: http://java.sun.com/j2se/javadoc/writingdoccomments/

More information

LAT-TD-xxxxx-xx May 21, 2002

LAT-TD-xxxxx-xx May 21, 2002 Document # Date LAT-TD-xxxxx-xx May 21, 2002 Author(s) Supersedes Page 1 of 12 LAT TECHNICAL NOTE System or Sponsoring Office Science Analysis Software Document Title SAS Recommendations for Code Documentation

More information

Documenting Code. Plain Old Documentation (POD) markup language

Documenting Code. Plain Old Documentation (POD) markup language Documenting Code Plain Old Documentation (POD) markup language Copyright 2006 2009 Stewart Weiss User documentation Suppose that you have reached the point where you are creating useful programs and modules.

More information

DICE and LCFG Software Guidelines

DICE and LCFG Software Guidelines DICE and LCFG Software Guidelines by paul@dcs.ed.ac.uk DICE Computing Environment Project Division of Informatics University of Edinburgh 1 Introduction This document describes the standards to be used

More information

$ /path/to/python /path/to/soardoc/src/soardoc.py

$ /path/to/python /path/to/soardoc/src/soardoc.py SoarDoc User s Manual Dave Ray ray@soartech.com October 16, 2003 Introduction SoarDoc is an embedded metadata documentation format and tool for Soar. This format facilitates the automatic generation of

More information

ODD Documentation Tool Tutorial

ODD Documentation Tool Tutorial ODD Documentation Tool Tutorial For TRAMP Bernhard Zaun December 10 th 2001 Agenda / Overview of ODD / Why to document source code / Doxygen / What is Doxygen / Config file / Documentation blocks / Special

More information

Introduction to Python Documentation

Introduction to Python Documentation Introduction to Python Documentation Release v0.0.1 M.Faisal Junaid Butt August 18, 2015 Contents 1 Models 3 2 Auto Generated Documentation 5 3 Hello World Program Documentation 9 4 Practice 11 5 Indices

More information

PERL Scripting - Course Contents

PERL Scripting - Course Contents PERL Scripting - Course Contents Day - 1 Introduction to PERL Comments Reading from Standard Input Writing to Standard Output Scalar Variables Numbers and Strings Use of Single Quotes and Double Quotes

More information

CS 211 Programming Practicum Fall 2018

CS 211 Programming Practicum Fall 2018 Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will

More information

Lecture 18 Tao Wang 1

Lecture 18 Tao Wang 1 Lecture 18 Tao Wang 1 Abstract Data Types in C++ (Classes) A procedural program consists of one or more algorithms that have been written in computerreadable language Input and display of program output

More information

Doxygen A source documentation tool.

Doxygen A source documentation tool. Doxygen A source documentation tool David García Garzón david.garcia@iua.upf.es Doxygen: a tool for source code documentation 1. Features and possibilities 2. Doxygen configuration 3. Documenting your

More information

Chapter 10 Introduction to Classes

Chapter 10 Introduction to Classes C++ for Engineers and Scientists Third Edition Chapter 10 Introduction to Classes CSc 10200! Introduction to Computing Lecture 20-21 Edgardo Molina Fall 2013 City College of New York 2 Objectives In this

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

package YourModule; require = = qw(munge frobnicate); # symbols to export on request

package YourModule; require = = qw(munge frobnicate); # symbols to export on request NAME SYNOPSIS Exporter - Implements default import method for modules In module YourModule.pm: require Exporter; @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or use Exporter 'import';

More information

CS11 Intro C++ Spring 2018 Lecture 4

CS11 Intro C++ Spring 2018 Lecture 4 CS11 Intro C++ Spring 2018 Lecture 4 Build Automation When a program grows beyond a certain size, compiling gets annoying g++ -std=c++14 -Wall units.cpp testbase.cpp \ hw3testunits.cpp -o hw3testunits

More information

Perl Scripting. Students Will Learn. Course Description. Duration: 4 Days. Price: $2295

Perl Scripting. Students Will Learn. Course Description. Duration: 4 Days. Price: $2295 Perl Scripting Duration: 4 Days Price: $2295 Discounts: We offer multiple discount options. Click here for more info. Delivery Options: Attend face-to-face in the classroom, remote-live or on-demand streaming.

More information

Web Development & Design Foundations with HTML5 & CSS3 Instructor Materials Chapter 2 Test Bank

Web Development & Design Foundations with HTML5 & CSS3 Instructor Materials Chapter 2 Test Bank Multiple Choice. Choose the best answer. 1. What tag pair is used to create a new paragraph? a. b. c. d. 2. What tag pair

More information

Hotmail Documentation Style Guide

Hotmail Documentation Style Guide Hotmail Documentation Style Guide Version 2.2 This Style Guide exists to ensure that there is a consistent voice among all Hotmail documents. It is an evolving document additions or changes may be made

More information

COMS 3101 Programming Languages: Perl. Lecture 6

COMS 3101 Programming Languages: Perl. Lecture 6 COMS 3101 Programming Languages: Perl Lecture 6 Fall 2013 Instructor: Ilia Vovsha http://www.cs.columbia.edu/~vovsha/coms3101/perl Lecture Outline Concepts: Subroutine references Symbolic references Saving

More information

Aligned Elements Importer V user manual. Aligned AG Tellstrasse Zürich Phone: +41 (0)

Aligned Elements Importer V user manual. Aligned AG Tellstrasse Zürich Phone: +41 (0) Aligned Elements Importer V2.4.211.14302 user manual Aligned AG Tellstrasse 13 8004 Zürich Phone: +41 (0)44 312 50 20 www.aligned.ch info@aligned.ch Table of Contents 1.1 Introduction...3 1.2 Installation...3

More information

LibSerial Documentation

LibSerial Documentation LibSerial Documentation Release 1.0.0rc1 CrayzeeWulf Apr 05, 2018 Contents: 1 Feature Summary 3 2 Description 5 3 Download 7 4 Install 9 5 Tutorial 11 5.1 Opening a Serial Port I/O Stream....................................

More information

Hands-On Perl Scripting and CGI Programming

Hands-On Perl Scripting and CGI Programming Hands-On Course Description This hands on Perl programming course provides a thorough introduction to the Perl programming language, teaching attendees how to develop and maintain portable scripts useful

More information

Java Style Guide. 1.0 General. 2.0 Visual Layout. Dr Caffeine

Java Style Guide. 1.0 General. 2.0 Visual Layout. Dr Caffeine September 25, 2002 Java Style Guide Dr Caffeine This document defines the style convention the students must follow in submitting their programs. This document is a modified version of the document originally

More information

Katie. Geoffrey D. Bennett NetCraft Australia January 6, 2003

Katie. Geoffrey D. Bennett NetCraft Australia January 6, 2003 Katie Geoffrey D. Bennett NetCraft Australia g@netcraft.com.au January 6, 2003 1 Introduction Katie is an open-source (GPL-licensed) revision control system which has been modelled on, and intended to

More information

Basics of Web Design, 3 rd Edition Instructor Materials Chapter 2 Test Bank

Basics of Web Design, 3 rd Edition Instructor Materials Chapter 2 Test Bank Multiple Choice. Choose the best answer. 1. What element is used to configure a new paragraph? a. new b. paragraph c. p d. div 2. What element is used to create the largest heading? a. h1 b. h9 c. head

More information

@EXPORT_OK = qw(munge frobnicate); # symbols to export on request

@EXPORT_OK = qw(munge frobnicate); # symbols to export on request NAME Exporter - Implements default import method for modules SYNOPSIS In module YourModule.pm: package YourModule; require Exporter; @ISA = qw(exporter); @EXPORT_OK = qw(munge frobnicate); # symbols to

More information

Lesson 1: Dreamweaver CS6 Jumpstart

Lesson 1: Dreamweaver CS6 Jumpstart Lesson 1: Dreamweaver CS6 Jumpstart Introduction to Adobe Dreamweaver CS6 Adobe Certified Associate: Web Communication using Adobe Dreamweaver CS6 Overview 2013 John Wiley & Sons, Inc. 2 3.1 Elements of

More information

MRO Delay Line. Coding and Documentation Guidelines for Prototype Delay Line Software. John Young. rev June 2007

MRO Delay Line. Coding and Documentation Guidelines for Prototype Delay Line Software. John Young. rev June 2007 MRO Delay Line Coding and Documentation Guidelines for Prototype Delay Line Software John Young rev 0.5 21 June 2007 Cavendish Laboratory Madingley Road Cambridge CB3 0HE UK Objective To propose a set

More information

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes CMPT 165 INTRODUCTION TO THE INTERNET AND THE WORLD WIDE WEB By Hassan S. Shavarani UNIT2: MARKUP AND HTML 1 IN THIS UNIT YOU WILL LEARN THE FOLLOWING Create web pages in HTML with a text editor, following

More information

As we design and build out our HTML pages, there are some basics that we may follow for each page, site, and application.

As we design and build out our HTML pages, there are some basics that we may follow for each page, site, and application. Extra notes - Client-side Design and Development Dr Nick Hayward HTML - Basics A brief introduction to some of the basics of HTML. Contents Intro element add some metadata define a base address

More information

API Knowledge Coding Guide Version 7.2

API Knowledge Coding Guide Version 7.2 API Knowledge Coding Guide Version 7.2 You will be presented with documentation blocks extracted from API reference documentation (Javadocs and the like). For each block, you will be also presented with

More information

CS11 Advanced C++ Fall Lecture 4

CS11 Advanced C++ Fall Lecture 4 CS11 Advanced C++ Fall 2006-2007 Lecture 4 Today s Topics Using make to automate build tasks Using doxygen to generate API docs Build-Automation Standard development cycle: Write more code Compile Test

More information

Teamcenter 11.1 Systems Engineering and Requirements Management

Teamcenter 11.1 Systems Engineering and Requirements Management SIEMENS Teamcenter 11.1 Systems Engineering and Requirements Management Systems Architect/ Requirements Management Project Administrator's Manual REQ00002 U REQ00002 U Project Administrator's Manual 3

More information

Week 7 - More Java! this stands for the calling object:

Week 7 - More Java! this stands for the calling object: Week 7 - More Java! Variable Scoping, Revisited this Parameter Encapsulation & Principles of Information Hiding: Use of public and private within class API, ADT javadoc Variables of class Type Wrapper

More information

Utilities (Part 3) Implementing static features

Utilities (Part 3) Implementing static features Utilities (Part 3) Implementing static features 1 Goals for Today learn about preconditions versus validation introduction to documentation introduction to testing 2 Yahtzee class so far recall our implementation

More information

General Coding Standards

General Coding Standards Rick Cox rick@rescomp.berkeley.edu A description of general standards for all code generated by ResComp employees (including non-programmers), intended to make maintaince, reuse, upgrades, and trainig

More information

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved. Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;

More information

A JavaBean is a class file that stores Java code for a JSP

A JavaBean is a class file that stores Java code for a JSP CREATE A JAVABEAN A JavaBean is a class file that stores Java code for a JSP page. Although you can use a scriptlet to place Java code directly into a JSP page, it is considered better programming practice

More information

How A Website Works. - Shobha

How A Website Works. - Shobha How A Website Works - Shobha Synopsis 1. 2. 3. 4. 5. 6. 7. 8. 9. What is World Wide Web? What makes web work? HTTP and Internet Protocols. URL s Client-Server model. Domain Name System. Web Browser, Web

More information

Issues surrounding model consistency and QVT

Issues surrounding model consistency and QVT Issues surrounding model consistency and QVT Laurence Tratt, Tony Clark laurie@tratt.net, anclark@dcs.kcl.ac.uk December 6, 200. Introduction This document is intended to outline some of the issues surrounding

More information

ADMIN 3.4. V e r s i o n 4. Paul Daly CEO RISSB

ADMIN 3.4. V e r s i o n 4. Paul Daly CEO RISSB ADMIN 3.4 V e r s i o n 4 Paul Daly CEO RISSB 01 November 2017 DOCUMENT CONTROL Identification Document Title Number Version Date Document ADMIN 3.4 1 23/11/2007 Document ADMIN 3.4 2 04/02/2010 Document

More information

galileo Design Document Solomon Boulos

galileo Design Document Solomon Boulos galileo Design Document Solomon Boulos 1 Contents 1 Introduction 3 2 Overview 3 3 Code Organization 4 3.1 Core.................................................. 4 3.1.1 API..............................................

More information

CERTIFICATE IN WEB PROGRAMMING

CERTIFICATE IN WEB PROGRAMMING COURSE DURATION: 6 MONTHS CONTENTS : CERTIFICATE IN WEB PROGRAMMING 1. PROGRAMMING IN C and C++ Language 2. HTML/CSS and JavaScript 3. PHP and MySQL 4. Project on Development of Web Application 1. PROGRAMMING

More information

Documenting Java Code. Javadoc: The Tool and the Legend

Documenting Java Code. Javadoc: The Tool and the Legend Documenting Java Code Javadoc: The Tool and the Legend Comments in Java Regular Java comments: /* */ for programmers who must read or modify your code. One Liners : // for programmers who must read or

More information

PTN-202: Advanced Python Programming Course Description. Course Outline

PTN-202: Advanced Python Programming Course Description. Course Outline PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

More information

Subroutines. Subroutines. The Basics. aka: user-defined functions, methods, procdures, sub-procedures, etc etc etc.

Subroutines. Subroutines. The Basics. aka: user-defined functions, methods, procdures, sub-procedures, etc etc etc. Subroutines Subroutines aka: user-defined functions, methods, procdures, sub-procedures, etc etc etc We ll just say Subroutines. "Functions" generally means built-in functions perldoc perlsub The Basics

More information

Arrays. Chapter Arrays What is an Array?

Arrays. Chapter Arrays What is an Array? Chapter 8 Arrays 81 Arrays 811 What is an Array? To motivate why we might be interested in using arrays, let us implement an app that creates a collection of doubles We will keep track of the number of

More information

Web Development & Design Foundations with HTML5 & CSS3 Instructor Materials Chapter 2 Test Bank

Web Development & Design Foundations with HTML5 & CSS3 Instructor Materials Chapter 2 Test Bank Multiple Choice. Choose the best answer. 1. What tag pair is used to create a new paragraph? a. b. c. d. 2. What tag pair

More information

C++ Coding Standards and Practices. Tim Beaudet March 23rd 2015

C++ Coding Standards and Practices. Tim Beaudet March 23rd 2015 C++ Coding Standards and Practices Tim Beaudet (timbeaudet@yahoo.com) March 23rd 2015 Table of Contents Table of contents About these standards Project Source Control Build Automation Const Correctness

More information

Chapter 14 Working with Fields

Chapter 14 Working with Fields Writer Guide Chapter 14 Working with Fields This PDF is designed to be read onscreen, two pages at a time. If you want to print a copy, your PDF viewer should have an option for printing two pages on one

More information

Dolphin Dynamics. Enhancing Your Customer Facing Documents

Dolphin Dynamics. Enhancing Your Customer Facing Documents Dolphin Dynamics Enhancing Your Customer Facing Documents Document Amendment History Date Issue number and reason Author 17/06/15 Document Creation Simon Baker Copyright 2015 Dolphin Dynamics Ltd. The

More information

Ektron Advanced. Learning Objectives. Getting Started

Ektron Advanced. Learning Objectives. Getting Started Ektron Advanced 1 Learning Objectives This workshop introduces you beyond the basics of Ektron, the USF web content management system that is being used to modify department web pages. This workshop focuses

More information

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message.

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message. What is CGI? The Common Gateway Interface (CGI) is a set of standards that define how information is exchanged between the web server and a custom script. is a standard for external gateway programs to

More information

Web Development and Design Foundations with HTML5 8th Edition

Web Development and Design Foundations with HTML5 8th Edition Web Development and Design Foundations with HTML5 8th Edition Felke-Morris TEST BANK Full clear download (no formatting errors) at: Web Development and Design Foundations with HTML5 8th Edition Felke-Morris

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5.

6.170 Laboratory in Software Engineering Java Style Guide. Overview. Descriptive names. Consistent indentation and spacing. Page 1 of 5. Page 1 of 5 6.170 Laboratory in Software Engineering Java Style Guide Contents: Overview Descriptive names Consistent indentation and spacing Informative comments Commenting code TODO comments 6.170 Javadocs

More information

IBM Software Accelerated Value Program - WebSphere Application Server Configuration Comparison Tool

IBM Software Accelerated Value Program - WebSphere Application Server Configuration Comparison Tool IBM Software Accelerated Value Program - WebSphere Application Server Configuration Comparison Tool Tool Author: Dennis Riddlemoser Presentation Author: Ricky Marley Agenda Configuration Comparison Tool

More information

Deltek Maconomy 2.3 GA. M-Script Programming

Deltek Maconomy 2.3 GA. M-Script Programming Deltek Maconomy 2.3 GA M-Script Programming December 2, 2016 While Deltek has attempted to verify that the information in this document is accurate and complete, some typographical or technical errors

More information

Pod::Usage, pod2usage() - print a usage message from embedded pod documentation

Pod::Usage, pod2usage() - print a usage message from embedded pod documentation NAME Pod::Usage, pod2usage() - print a usage message from embedded pod documentation SYNOPSIS use Pod::Usage my $message_text = "This text precedes the usage message."; my $exit_status = 2; ## The exit

More information

d-file Language Reference Manual

d-file Language Reference Manual Erwin Polio Amrita Rajagopal Anton Ushakov Howie Vegter d-file Language Reference Manual COMS 4115.001 Thursday, October 20, 2005 Fall 2005 Columbia University New York, New York Note: Much of the content

More information

MFC Programmer s Guide: Getting Started

MFC Programmer s Guide: Getting Started MFC Programmer s Guide: Getting Started MFC PROGRAMMERS GUIDE... 2 PREPARING THE DEVELOPMENT ENVIRONMENT FOR INTEGRATION... 3 INTRODUCING APC... 4 GETTING VISUAL BASIC FOR APPLICATIONS INTO YOUR MFC PROJECT...

More information

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7

Javadoc. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 7 Javadoc Computer Science and Engineering College of Engineering The Ohio State University Lecture 7 Motivation Over the lifetime of a project, it is easy for documentation and implementation to diverge

More information

Enhancing Your Customer Facing Documents (updated 10/03/2017)

Enhancing Your Customer Facing Documents (updated 10/03/2017) Dolphin Dynamics Enhancing Your Customer Facing Documents (updated 10/03/2017) Copyright 2016 Dolphin Dynamics Ltd. The information contained herein is the property of Dolphin Dynamics Ltd. No part of

More information

Course Overview. Week 1

Course Overview. Week 1 Course Overview Week 1 AGENDA WEBD101 Introduction Course Requirements Attendance Assignment Submissions This week 2 I live in Ohio Introduction I have worked for Franklin University as an adjunct / employee

More information

In spite of its name, h2xs may also be used to create a skeleton pure Perl module. See the -X option.

In spite of its name, h2xs may also be used to create a skeleton pure Perl module. See the -X option. NAME h2xs - convert.h C header files to Perl extensions SYNOPSIS h2xs [OPTIONS...] [headerfile... [extra_libraries]] DESCRIPTION OPTIONS h2xs -h -? --help h2xs builds a Perl extension from C header files.

More information

User Defined Types. Babes-Bolyai University Lecture 06. Lect Phd. Arthur Molnar. User defined types. Python scope and namespace

User Defined Types. Babes-Bolyai University Lecture 06. Lect Phd. Arthur Molnar. User defined types. Python scope and namespace ? User Defined Types Babes-Bolyai University arthur@cs.ubbcluj.ro Overview? 1? 2 3 ? NB! Types classify values. A type denotes a domain (a set of values) operations on those values. ? Object oriented programming

More information

Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

More information

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview

Introduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple

More information

ST.96 - ANNEX VI TRANSFORMATION RULES AND GUIDELINES. Version 3.0

ST.96 - ANNEX VI TRANSFORMATION RULES AND GUIDELINES. Version 3.0 page: 3.96.vi.1 ST.96 - ANNEX VI TRANSFORMATION RULES AND GUIDELINES Version 3.0 Revision approved by the XML4IP Task Force of the Committee of WIPO Standards (CWS) on February 26, 2018 Table of Contents

More information

Beginning Perl. Third Edition. Apress. JAMES LEE with SIMON COZENS

Beginning Perl. Third Edition. Apress. JAMES LEE with SIMON COZENS Beginning Perl Third Edition JAMES LEE with SIMON COZENS Apress About the Author... About the Technical Reviewers Acknowledgements Suitrod yetion «. xvi xvii xviii «xix. Chapter 1: First Steps in Perl..

More information

The main differences with other open source reporting solutions such as JasperReports or mondrian are:

The main differences with other open source reporting solutions such as JasperReports or mondrian are: WYSIWYG Reporting Including Introduction: Content at a glance. Create A New Report: Steps to start the creation of a new report. Manage Data Blocks: Add, edit or remove data blocks in a report. General

More information

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( )

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( ) MODULE 2 HTML 5 FUNDAMENTALS HyperText > Douglas Engelbart (1925-2013) Tim Berners-Lee's proposal In March 1989, Tim Berners- Lee submitted a proposal for an information management system to his boss,

More information

Motivation was to facilitate development of systems software, especially OS development.

Motivation was to facilitate development of systems software, especially OS development. A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.

More information

Programming in Python

Programming in Python COURSE DESCRIPTION This course presents both the programming interface and the techniques that can be used to write procedures in Python on Unix / Linux systems. COURSE OBJECTIVES Each participant will

More information

FrontPage 2003 Lesson 4 - Creating Individual Pages. Adding a Page Using a Template. Web Page Title. Saving a Web Page

FrontPage 2003 Lesson 4 - Creating Individual Pages. Adding a Page Using a Template. Web Page Title. Saving a Web Page FrontPage 2003 Lesson 4 - Creating Individual Pages Adding a Page Using a Template 1. Open the Practice web site. 2. Click File > New. 3. In the Task Pane, click More page templates. 4. Click the General

More information

Quark XML Author for FileNet 2.5 with BusDocs Guide

Quark XML Author for FileNet 2.5 with BusDocs Guide Quark XML Author for FileNet 2.5 with BusDocs Guide CONTENTS Contents Getting started...6 About Quark XML Author...6 System setup and preferences...8 Logging in to the repository...8 Specifying the location

More information

SOAPScript For squeaky-clean code, use SOAPScript Language Summary Bob Nisco Version 0.5 β

SOAPScript For squeaky-clean code, use SOAPScript Language Summary Bob Nisco Version 0.5 β SOAPScript For squeaky-clean code, use SOAPScript Language Summary Bob Nisco Version 0.5 β This page intentionally left blank? It s a paradox more so than a question. Nisco 2 Nisco 3 1. Introduction SOAPScript,

More information

Quark XML Author October 2017 Update with Business Documents

Quark XML Author October 2017 Update with Business Documents Quark XML Author 05 - October 07 Update with Business Documents Contents Getting started... About Quark XML Author... Working with documents... Basic document features... What is a business document...

More information

OU EDUCATE TRAINING MANUAL

OU EDUCATE TRAINING MANUAL OU EDUCATE TRAINING MANUAL OmniUpdate Web Content Management System El Camino College Staff Development 310-660-3868 Course Topics: Section 1: OU Educate Overview and Login Section 2: The OmniUpdate Interface

More information

CS Exam 1 Review Suggestions - Spring 2017

CS Exam 1 Review Suggestions - Spring 2017 CS 328 - Exam 1 Review Suggestions p. 1 CS 328 - Exam 1 Review Suggestions - Spring 2017 last modified: 2017-02-16 You are responsible for material covered in class sessions and homeworks; but, here's

More information

Lecture 15a Persistent Memory & Shared Pointers

Lecture 15a Persistent Memory & Shared Pointers Lecture 15a Persistent Memory & Shared Pointers Dec. 5 th, 2017 Jack Applin, Guest Lecturer 2017-12-04 CS253 Fall 2017 Jack Applin & Bruce Draper 1 Announcements PA9 is due today Recitation : extra help

More information

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */ Overview Language Basics This chapter describes the basic elements of Rexx. It discusses the simple components that make up the language. These include script structure, elements of the language, operators,

More information

Saving the Project Brief document under its own name

Saving the Project Brief document under its own name HOW TO USE THIS TEMPLATE: Introduction The template reflects the steps set out in the PRINCE2 Method and is designed to prompt the Project Manager and help in the creation of the. The information for the

More information

Java Interfaces. 6 April 2016 OSU CSE 1

Java Interfaces. 6 April 2016 OSU CSE 1 Java Interfaces 6 April 2016 OSU CSE 1 Conceptual Framework A firm conceptual foundation for understanding and designing modern software recognizes: Modern software consists of potentially large numbers

More information

Flask-Misaka Documentation

Flask-Misaka Documentation Flask-Misaka Documentation Release 0.4.1 David Baumgold Mar 15, 2017 Contents 1 Installation 3 2 Usage 5 3 API 7 4 Options 9 Python Module Index 11 i ii Flask-Misaka Documentation, Release 0.4.1 Flask-Misaka

More information

Quark XML Author for FileNet 2.8 with BusDocs Guide

Quark XML Author for FileNet 2.8 with BusDocs Guide Quark XML Author for FileNet.8 with BusDocs Guide Contents Getting started... About Quark XML Author... System setup and preferences... Logging on to the repository... Specifying the location of checked-out

More information

CS 105 Perl: Modules and Objects

CS 105 Perl: Modules and Objects CS 105 Perl: Modules and Objects February 20, 2013 Agenda Today s lecture is an introduction to Perl modules and objects, but first we will cover a handy feature Perl has for making data structures. Where

More information

Expanded Guidelines on Programming Style and Documentation

Expanded Guidelines on Programming Style and Documentation Page 1 of 5 Expanded Guidelines on Programming Style and Documentation Introduction Introduction to Java Programming, 5E Y. Daniel Liang liang@armstrong.edu Programming style deals with the appearance

More information

APPENDIX B. The Future Of Perl & CGI Programming OVERVIEW

APPENDIX B. The Future Of Perl & CGI Programming OVERVIEW APPENDIX B The Future Of Perl & CGI Programming OVERVIEW Although Perl 5 has been available for quite a while now, not many CGI authors have taken advantage of Perl 5 specific features. There are several

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

perl -MO=Deparse[,-d][,-fFILE][,-p][,-q][,-l] [,-sletters][,-xlevel] prog.pl

perl -MO=Deparse[,-d][,-fFILE][,-p][,-q][,-l] [,-sletters][,-xlevel] prog.pl NAME SYNOPSIS DESCRIPTION OPTIONS B::Deparse - Perl compiler backend to produce perl code perl -MO=Deparse[,-d][,-fFILE][,-p][,-q][,-l] [,-sletters][,-xlevel] prog.pl B::Deparse is a backend module for

More information

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines. Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

A Project of System Level Requirement Specification Test Cases Generation

A Project of System Level Requirement Specification Test Cases Generation A Project of System Level Requirement Specification Test Cases Generation Submitted to Dr. Jane Pavelich Dr. Jeffrey Joyce by Cai, Kelvin (47663000) for the course of EECE 496 on August 8, 2003 Abstract

More information

ITNP43: HTML Lecture 4

ITNP43: HTML Lecture 4 ITNP43: HTML Lecture 4 Niederst, Part III (3rd edn) 1 Style versus Content HTML purists insist that style should be separate from content and structure HTML was only designed to specify the structure and

More information

Intermediate Perl Table of Contents Intermediate Perl Foreword Preface Structure of This Book Conventions Used in This Book Using Code Examples

Intermediate Perl Table of Contents Intermediate Perl Foreword Preface Structure of This Book Conventions Used in This Book Using Code Examples Intermediate Perl Table of Contents Intermediate Perl Foreword Preface Structure of This Book Conventions Used in This Book Using Code Examples Comments and Questions Safari Enabled Acknowledgments Chapter

More information

Cloned page. A Technical Introduction to PDF/UA. DEFWhitepaper. The PDF/UA Standard for Universal Accessibility

Cloned page. A Technical Introduction to PDF/UA. DEFWhitepaper. The PDF/UA Standard for Universal Accessibility A Technical Introduction to PDF/UA DEFWhitepaper Applying WCAG to PDF The PDF/UA Standard for Universal Accessibility Traditionally, PDF documents didn t have a good reputation regarding basic accessibility

More information

Quark XML Author September 2016 Update for Platform with Business Documents

Quark XML Author September 2016 Update for Platform with Business Documents Quark XML Author 05 - September 06 Update for Platform with Business Documents Contents Getting started... About Quark XML Author... Working with the Platform repository... Creating a new document from

More information

IBM Rational Rhapsody Properties

IBM Rational Rhapsody Properties IBM Rational Rhapsody Properties Every model element in Rational Rhapsody has a set of properties associated with it which can be accessed through the features window of Rational Rhapsody. These properties

More information