An Overview of Tools Available in CS 501 - PowerPoint PPT Presentation

An overview of tools available in cs 501 l.jpg
Download
1 / 54

An Overview of Tools Available in CS 501. Ken Hopkinson hopkik@cs.cornell.edu. Talk Overview. Rational Rose for Design Source Management Tools A Selection of Available Development Environments Debugging Techniques. Using Rational Rose for Project Design. Start Rational Rose.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

An Overview of Tools Available in CS 501

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


An overview of tools available in cs 501 l.jpg

An Overview of Tools Available in CS 501

Ken Hopkinson

hopkik@cs.cornell.edu


Talk overview l.jpg

Talk Overview

  • Rational Rose for Design

  • Source Management Tools

  • A Selection of Available Development Environments

  • Debugging Techniques


Using rational rose for project design l.jpg

Using Rational Rose for Project Design


Start rational rose l.jpg

Start Rational Rose


A typical design l.jpg

A Typical Design


Another sample design case l.jpg

Another Sample Design Case


Remember your specifications l.jpg

Remember Your Specifications


Specification fields l.jpg

Specification Fields


General specification fields l.jpg

General Specification Fields


Source code management l.jpg

Source Code Management

  • Also known as Configuration Management

  • Source Code Managers are tools that:

  • Archive your development files

  • Serve as a single point of entry/exit when adding or updating development files


Why you want a source control system l.jpg

Why You Want A Source Control System

  • Supports concurrent development

  • Manage diverging source code bases

  • Records file/release versions

  • Easy access to all previous revisions

  • Can record why a revision was made

  • Optimal disk space usage

  • You’ll end up doing something equivalent anyway so it may as well be automated


Source code management tools are not l.jpg

Source Code Management Tools Are Not

  • A substitute for project management

  • A replacement for developer communication


How they work l.jpg

How They Work

  • Central database of source code, documentation, build tools

  • Each file stored only once - all other versions are diffs of that one copy

  • To Make a Change

  • Check out the latest version of a file

  • Make the changes

  • Update the database


What should be in the database l.jpg

What should be in the database

  • Source Code

  • Documentation

  • Build Tools

  • Often need old versions of the tools to build old versions of the software

  • Ensures software is rebuilt exactly as the customer received it

  • Test Suites

  • Anything else you might want later


Version control l.jpg

Version Control

  • Companies ship several products from the same source base (ie Win NT and Windows 2000 versions of MS Office)

  • When tracking down bugs you want to examine the code as it was when the product shipped


Code sharing l.jpg

Code Sharing

  • Multiple people can work on the same source base without colliding

  • (1) Locks individual files so only one person at a time can modify it *OR*

  • (2) Allows multiple people to modify a source file and the system will automatically merge the changes (usually)


Locking l.jpg

Locking

  • Only one person can work on a file at once

  • Works fairly well if developers work on different areas of the project and don’t conflict often

  • Problem 1: People forget to unlock files when they are done

  • Problem 2: People work around locking by editing a private copy and checking in when the file is finally unlocked - easy to goof and lose changes


Merging l.jpg

Merging

  • Several people can work on a file at once

  • Before committing changes, each user merges their copy with the latest copy in the database

  • This is normally done automatically by the system and usually works, but you should not blindly accept the result of the merge


Labelling l.jpg

Labelling

  • Label all the files in the source base that make up a product at each milestone

  • Just before and just after a major change (eg. changing several interfaces)

  • When a new version ships


Version trees l.jpg

Version Trees

  • Each file in the database has a version tree

  • Can branch off the version tree to allow separate development paths

  • Typically a main path (trunk) for the next major version and branches off of shipped versions for maintenance


Branching l.jpg

Branching

  • When a new version ships, typically create a branch in the version tree for maintenance

  • Double update: fix a defect in the latest version and then merge the changes (often by hand) into the maintenance version

  • Also create personal versions so you can make a change against a stable source base and then merge in the latest version later


Examples l.jpg

Examples

  • RCS

  • Solaris: man rcsintro

  • CVS

  • Solaris: man cvs

  • www.cyclic.com/cvs/info.html

  • Visual SourceSafe

  • msdn.microsoft.com/SSAFE

  • ClearCase

  • www.rational.com

  • SourceForge

  • www.sourceforge.net


Slide24 l.jpg

RCS

  • File management only

  • Transaction model

  • check out and lock

  • edit

  • check in and unlock

  • Little support for binaries


Slide25 l.jpg

CVS

  • Built on top of RCS

  • Therefore little support for binaries

  • Database can be remote

  • No locking: merge before commit

  • Fast

  • Integrates with emacs


Sourcesafe l.jpg

SourceSafe

  • Microsoft’s entry into the field

  • Project-based

  • Checkout-edit-checkin model

  • Built-in web site creation tools

  • Integrates with MSDEV


Clearcase l.jpg

Clearcase

  • Clearcase is configuration management on steroids

  • You create a view of the database with a config spec, which describes how to select files from the database.

  • When you set a view, Clearcase creates a virtual filesystem containing only those versions of the files selected by the config spec


Clearcase features l.jpg

Clearcase Features

  • Distributed System

  • Several groups at different locations can work on the same database

  • Can install triggers

  • Example: e-mail the author of a file when some one makes a change to it

  • Uses merging model like CVS, but can also lock files


More clearcase features l.jpg

More Clearcase Features

  • Integrates with MSDEV

  • Build Management

  • Knows to rebuild out-of-date files even if your makefile doesn’t

  • Slow and a bit buggy


Sourceforge l.jpg

SourceForge

  • On-line Version Control System

  • Projects are available for public discovery and development

  • A very good environment for open source projects


Helpful rules for version control bliss l.jpg

Helpful Rules for Version Control Bliss

  • Archived Files Should Always Compile

  • Code Review Files Before Check-in

  • Compile and run latest archived files *as a set* before Check-in

  • No Cheating (even “simple bug fixes” need to undergo this process)


Development tools available at cornell at no charge to you l.jpg

Development Tools Available at Cornell at No Charge to You


Msdnaa l.jpg

MSDNAA

  • Windows XP

  • Visual Studio .Net

  • Windows CE Development Tools

  • Microsoft SQL Server

  • Visual SourceSafe


Freely available software l.jpg

Freely Available Software

  • GNU

  • Free Software Foundation

  • Other Public Software Freely Distributed


Useful public software l.jpg

Useful Public Software

  • Apache Web Server

  • g++/gdb

  • Perl

  • Python

  • CVS


Software installed in public windows unix labs l.jpg

Software Installed in Public Windows/Unix Labs

  • Microsoft Office including MS Access

  • Purify

  • CVS Server

  • Unix Shell Access


Key points to remember l.jpg

Key Points to Remember

  • Use the most appropriate tools for the job

  • Check available Cornell software before buying anything

  • Ignore licensing agreements at your peril

  • No extra credit is given for a one week project that does the same work as a one-line library call.


A closer look at two cool development tools l.jpg

A Closer Look at Two Cool Development Tools

  • Purify

  • Microsoft Visual Debugger


Purify l.jpg

Purify

  • Purify is a tool for locating runtime errors in a C/C++ program

  • Purify can find

    • Array bounds errors

    • Accesses through dangling pointers

    • Uninitialized memory reads

    • Memory allocation errors

    • Memory leaks

  • Purify is available on Windows and UNIX systems and is a product of Rational Software www.rational.com


How purify works l.jpg

How Purify Works

  • Purify instruments a program by adding protection instructions around every load and store operation

  • When program is executed a viewer will be created to display errors as they happen

  • Purify is flexible and can be run standalone with any executable (written in C) or within a debugging environment like Visual Studio

  • Purify is customizable and can be set to ignore certain types of errors


How to use purify l.jpg

How to Use Purify

  • add purify command to link command

  • program: $(OBJS)

    purify [-option ...] $(CC) $(CFLAGS) -o\ program $(OBJS) $(LIBS)

  • OR run purify in Visual Studio

  • OR load file in purify executable


Visual debugger l.jpg

Visual Debugger

  • Graphically Oriented

  • Run from Visual Studio

  • Can debug a failed process by selecting the Yes button at “Debug Application” dialog after a memory or other failure occurs

  • Can attach to a running process by choosing the Tools->Start Debug->Attach to Process menu option


The visual debugger l.jpg

The Visual Debugger


Breakpoints l.jpg

Breakpoints

  • Can stop execution at any line and in any function. (Location)

  • Can set conditions on breakpoints if you are only interested in specific passes through a piece of code (Location->Condition)

  • Conditional breakpoints detached from any one line in the program are also possible, but make program execution very slow (Data).


Breakpoint window l.jpg

Breakpoint Window


Conditional window l.jpg

Conditional Window


Conditional data breakpoint l.jpg

Conditional Data Breakpoint


Examining program state l.jpg

Examining Program State

  • Print and/or Change variable state.

  • Walk up/down the stack trace.

  • View disassembled code.


Quick print change variables l.jpg

Quick Print/Change Variables


Common pointer problems l.jpg

Common Pointer Problems

  • Pointer to bogus memory

  • Corrupt data structure segments

  • Data sharing errors

  • Accessing data elements of the wrong type

  • Attempting to use memory areas after freeing them


Conclusion l.jpg

Conclusion

  • Rational Rose is an Excellent Design Tool

  • Version Control Software is Very Helpful

  • Many Good Project Tools Available at Cornell

  • Using Development Tools Well Can Make a Big Difference in Your Project’s Success


  • Login