Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

A Toolbox for Blackboard Tim Roberts
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
Chapter Apache Installation in Linux- Mandrake. Acknowledgment The following information has been obtained directly from
1 Computing for Todays Lecture 22 Yumei Huo Fall 2006.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Creating a Console Application with Visual Studio
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Linux Operations and Administration
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
1 ENG236: ENG236: C++ Programming Environment (2) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Introduction to.Net and ASP.Net Course Introduction Build Your Own ASP.Net Website: Chapter 1 Microsoft ASP.Net Walkthrough: Creating a Basic Web Forms.
Adobe Dreamweaver CS3 Revealed CHAPTER ONE: GETTING STARTED WITH DREAMWEAVER.
Linux Operations and Administration
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Computing IV Visual C Introduction with OpenCV Example Xinwen Fu.
Using Visual Basic 6.0 to Create Web-Based Database Applications
IT 211 Project Integration and Deployment Lab #11.
1 Lecture 19 Configuration Management Software Engineering.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
11 MANAGING AND DISTRIBUTING SOFTWARE BY USING GROUP POLICY Chapter 5.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Lecture Set 2 Part B – Configuring Visual Studio; Configuration Options and The Help System (scan quickly for future reference)
Tutorial 111 The Visual Studio.NET Environment The major differences between Visual Basic 6.0 and Visual Basic.NET are the latter’s support for true object-oriented.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Scalable Game Development William Roberts Senior Game Engineer
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Version control Using Git Version control, using Git1.
Chapter 13. Applets and HTML HTML Applets Computer Programming with JAVA.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Microsoft Visual Basic 2010 CHAPTER THREE Program Design and Coding.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
GLAST CHEP 03 March T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
ASP (Active Server Pages) by Bülent & Resul. Presentation Outline Introduction What is an ASP file? How does ASP work? What can ASP do? Differences Between.
GLite build and integration system Building and Packaging Robert HARAKALY
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
1 MSTE Visual SourceSafe For more information, see:
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Open project in Microsoft Visual Studio → build program in “Release” mode.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
GLAST CHEP 03 March T.Burnett1/14 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
XP Creating Web Pages with Microsoft Office
11 DEPLOYING AN UPDATE MANAGEMENT INFRASTRUCTURE Chapter 6.
Development with Eclipse
CMPE 152: Compiler Design ANTLR 4 and C++
JENKINS TIPS Ideas for making your life with Jenkins easier
Overview Unit testing Building Version control.
Presentation transcript:

Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –

Outline  Introduction  Distribution of systems  Packaging and transfer of systems  Summary

Introduction  Many systems are not very portable to new environments  The challenges are multiple  What is a good way to distribute code?  What are good ways to package code for sharing?  What about all the extra dependencies?  What the tools and mechanisms available to address this?

Code distribution  Local  RCS – Revision Control Systems  SVN – Subversion  Global  Sourceforge – the open source repository  Codeplex – The Microsoft site for Code Sharing  Basecamp is also starting to see traffic (Ruby on rails type of site)

RCS / SVN  Tracking revision management of code  RCS – the “old” way of doing revision management  Stores revision info in files (and repository)  Poor handling of revision conflicts (file locking)  SVN  Uses DB to store revision information  Without DB difficult to track revisions  Not as easy to tag files  Excellent conflict management for check-in  Has a better network based interface with web interfaces  Both have releases and revisions.

Internet repositories  Provides easy organization of projects  Homepage with overview information  Code page repositories  Discussion Forum  Issue Tracker  Major revision management is easy  Easy for use with distributed teams

Internet repositories

 Includes typically mechanisms for  SVN repository across a community  Discussion group for community engagement  Issue tracker  Explicit list with issues and status of addressing these  Documentation  Some have automated mechanisms for document generation  Typically using a variation of doxygen

Doxygen  Automatic mechanism for embedding of documentation in code.  “Simple” comments allow automated generation of key documentation  This is not a replacement for design documents but a nice what to provide detailed documentation of the actual code  Quite effective for many languages  C++, C#, Java, …

Doxygen Process

Doxygen  Direct embedding of comments  /** *... text... */  Enable generation of documentation  Has “tags” that can be used for augment documentation  /*! \class Test \brief A test class. A more detailed class description. */  Easy to use across systems

Consider migration issues  Moving software between versions.  RDS enable easy migration between versions  DssProjectMigration enables upgrading and downgrading between versions. Also has functions for modifying files to match different versions of Visual Studio Project files.  Relatively easy to migrate between versions  Does 90% of the job

Packaging of files for compatibility  Files are typically packed in archives using your favorite archive manager.  Tar (Tape archive) -> tar files or compressed tar tgz  Zip -> Zip archives incl winzip/zip/unzip  Jar -> Java Archives similar to tar but with a java basis  In RDS there is also a dedicated archive program for DSS application – DssDeploy. It was designed to simplify portability across machines

Some of the issues  Applications are installed at different locations  C:\users\hic\MSRDS-R2\ or /usr/local/src  Libraries are also installed at different location  Dynamic link libraries will cause headaches  They are term DLL’s in Windows and.so files on Linux/Mac  The loadpath has to be organized to make sure you link against the correct libraries.  Especially on multi-architecture systems such as mixed 32/64 bit this can be a challenge  A careful directory hierarchy is a good start

Handling some of the issues  Different systems have different solutions  Java – ANT and Loadpath  Linux / C++ typically configure scripts  Windows / Configure and DssDeploy  Use of environment variables is an old tradition to organize systems  PATH, LOADPATH, LD_LIBRARY_PATH, …. MSR_ROOT  Through use of environment variables it is easier to provide migration

Configure / Autoconf  Derived from the GNU toolchain  Configure and configure.in specifies required “features” of a host system  Autoconf is used to derive make files for use with make to compile an application  There are a variety of derived systems designed for automatic generation of build files  The basic idea  Specify required features for the application  Use tools to automatically find and configure compile scripts  Build the application using generated scripts.  Effective even for complex applications

DssDeploy  Allow distribution of packages to other computers.  Two models for distribution  Distributed of binaries for execution in a client with RDS installed  Distribution of source and key DLL files for reuse on another client  Several models for distribution  Name files on the command line  Generation of a text file with files names  Ex use Dir /b/o:n/s > dir.txt to generate a raw file  Edit the file to include those to be included.  Add /d: at start of all lines

DssDeploy  Example from the PromRDS book (Chapter 2)  # Chapter 2 Deploy Options File  # All Chapter files should follow the same basic format  # Include the deploy options file for later repackaging  /d:”..\Package\DeployChapter2Options.txt”  # Chapter Readme.htm and associated files  /d:”..\Chapter2\Readme.htm”  /d:”..\Chapter2\images\*”  /d:”..\Chapter2\styles\*.css”  # Add the Batch files to run the applications in this chapter  #/d:”..\BatchFiles\xxxx.cmd”  # Add the Config files for the applications (if any)  # and the Manifests  …

DssDeploy  Simple script to distribute files from PromRDS (BuildChapterPackage.cmd) off  echo Build a single chapter for ProMRDS  if “%1” == “” goto usage  if not exist DeployChapter%1Options.txt goto noopts ..\..\bin\dssdeploy /p /e+ /cv+ /s- /n:”ProMRDS Chapter %1 Package”  ProMRDSChapter%1.exe  copy ProMRDSChapter%1.exe c:\temp  copy /Y ProMRDSChapter%1.exe ProMRDSChapter%1.exe.safe  goto end  :usage  echo Usage: BuildChapterPackage num  echo where num is the Chapter number  :noopts  echo DeployChapternumOptions.txt file must already exist  :end

DssDeploy  The corresponding exe file can be run on a new computer with RDS installed  Run file  Will unpack files into directory hierarchy  Will run DssProjectMigration  Display readme.htm in the web browser (good for delivery of extra installation information)  For source files you have to check the configuration options and the path for project files

Visual Studio Considerations  There is a need to edit a number of project properties to make files compile  Open the solutions file  Right click on the application icon and select properties  In the properties box  What version of.NET are you using. Typically 3.5  Under built make sure you have the correct output path  Under build events make sure the post build path is correct?  Under debug is the correct program path specified?  Under reference paths do you have the right base directory?  On the next slide is a simple example of the expected screen picture

Properties Box

Moving projects  Best solution is to rebuild on each machine  Make sure you have dependencies covered  Use DssDeploy to do 90% of the job  Edit paths in the project properties file to ensure compile  The editing of the files should be relative easy to do  For now the preferred solution is still use of Visual Studio 2008 for easy migration across projects with RDS R3

Acknowledgement  This series of lectures has been developed with generous support from the Microsoft Corporation as part of the project “Software Engineering in Robotics” Contract # The support is gratefully acknowledged.