an overview of tools available in cs 501 l.
Skip this Video
Loading SlideShow in 5 Seconds..
An Overview of Tools Available in CS 501 PowerPoint Presentation
Download Presentation
An Overview of Tools Available in CS 501

Loading in 2 Seconds...

play fullscreen
1 / 54

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

  • Uploaded on

An Overview of Tools Available in CS 501. Ken Hopkinson 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

An Overview of Tools Available in CS 501

Ken Hopkinson

talk overview
Talk Overview
  • Rational Rose for Design
  • Source Management Tools
  • A Selection of Available Development Environments
  • Debugging Techniques
source code management
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
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
Source Code Management Tools Are Not
  • A substitute for project management
  • A replacement for developer communication
how they work
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
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
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
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)
  • 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
  • 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
  • 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
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
  • 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
  • RCS
  • Solaris: man rcsintro
  • CVS
  • Solaris: man cvs
  • Visual SourceSafe
  • ClearCase
  • SourceForge
  • File management only
  • Transaction model
  • check out and lock
  • edit
  • check in and unlock
  • Little support for binaries
  • Built on top of RCS
  • Therefore little support for binaries
  • Database can be remote
  • No locking: merge before commit
  • Fast
  • Integrates with emacs
  • Microsoft’s entry into the field
  • Project-based
  • Checkout-edit-checkin model
  • Built-in web site creation tools
  • Integrates with MSDEV
  • 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
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
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
  • 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
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)
  • Windows XP
  • Visual Studio .Net
  • Windows CE Development Tools
  • Microsoft SQL Server
  • Visual SourceSafe
freely available software
Freely Available Software
  • GNU
  • Free Software Foundation
  • Other Public Software Freely Distributed
useful public software
Useful Public Software
  • Apache Web Server
  • g++/gdb
  • Perl
  • Python
  • CVS
software installed in public windows unix labs
Software Installed in Public Windows/Unix Labs
  • Microsoft Office including MS Access
  • Purify
  • CVS Server
  • Unix Shell Access
key points to remember
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
A Closer Look at Two Cool Development Tools
  • Purify
  • Microsoft Visual Debugger
  • 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
how purify works
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
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
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
  • 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).
examining program state
Examining Program State
  • Print and/or Change variable state.
  • Walk up/down the stack trace.
  • View disassembled code.
common pointer problems
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
  • 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