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

About This Presentation
Title:

An Overview of Tools Available in CS 501

Description:

Central database of source code, documentation, build tools ... A Closer Look at Two Cool Development Tools. Purify. Microsoft Visual Debugger ... – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 55
Provided by: benjami84
Category:

less

Transcript and Presenter's Notes

Title: An Overview of Tools Available in CS 501


1
An Overview of Tools Available in CS 501
  • Ken Hopkinson
  • hopkik_at_cs.cornell.edu

2
Talk Overview
  • Rational Rose for Design
  • Source Management Tools
  • A Selection of Available Development Environments
  • Debugging Techniques

3
Using Rational Rose for Project Design
4
Start Rational Rose
5
(No Transcript)
6
A Typical Design
7
Another Sample Design Case
8
Remember Your Specifications
9
Specification Fields
10
General Specification Fields
11
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

12
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
  • Youll end up doing something equivalent anyway
    so it may as well be automated

13
Source Code Management Tools Are Not
  • A substitute for project management
  • A replacement for developer communication

14
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

15
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

16
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

17
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)

18
Locking
  • Only one person can work on a file at once
  • Works fairly well if developers work on different
    areas of the project and dont 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

19
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

20
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

21
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

22
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

23
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

24
RCS
  • File management only
  • Transaction model
  • check out and lock
  • edit
  • check in and unlock
  • Little support for binaries

25
CVS
  • Built on top of RCS
  • Therefore little support for binaries
  • Database can be remote
  • No locking merge before commit
  • Fast
  • Integrates with emacs

26
SourceSafe
  • Microsofts entry into the field
  • Project-based
  • Checkout-edit-checkin model
  • Built-in web site creation tools
  • Integrates with MSDEV

27
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

28
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

29
More Clearcase Features
  • Integrates with MSDEV
  • Build Management
  • Knows to rebuild out-of-date files even if your
    makefile doesnt
  • Slow and a bit buggy

30
SourceForge
  • On-line Version Control System
  • Projects are available for public discovery and
    development
  • A very good environment for open source projects

31
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)

32
Development Tools Available at Cornell at No
Charge to You
33
MSDNAA
  • Windows XP
  • Visual Studio .Net
  • Windows CE Development Tools
  • Microsoft SQL Server
  • Visual SourceSafe

34
Freely Available Software
  • GNU
  • Free Software Foundation
  • Other Public Software Freely Distributed

35
Useful Public Software
  • Apache Web Server
  • g/gdb
  • Perl
  • Python
  • CVS

36
Software Installed in Public Windows/Unix Labs
  • Microsoft Office including MS Access
  • Purify
  • CVS Server
  • Unix Shell Access

37
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.

38
A Closer Look at Two Cool Development Tools
  • Purify
  • Microsoft Visual Debugger

39
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

40
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

41
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

42
(No Transcript)
43
(No Transcript)
44
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-gtStart Debug-gtAttach to Process menu option

45
The Visual Debugger
46
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-gtCondition)
  • Conditional breakpoints detached from any one
    line in the program are also possible, but make
    program execution very slow (Data).

47
Breakpoint Window
48
Conditional Window
49
Conditional Data Breakpoint
50
Examining Program State
  • Print and/or Change variable state.
  • Walk up/down the stack trace.
  • View disassembled code.

51
(No Transcript)
52
Quick Print/Change Variables
53
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

54
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 Projects Success
Write a Comment
User Comments (0)
About PowerShow.com