Central database of source code, documentation, build tools ... A Closer Look at Two Cool Development Tools. Purify. Microsoft Visual Debugger ... – PowerPoint PPT presentation
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
PowerShow.com is a leading presentation sharing website. It has millions of presentations already uploaded and available with 1,000s more being uploaded by its users every day. Whatever your area of interest, here you’ll be able to find and view presentations you’ll love and possibly download. And, best of all, it is completely free and easy to use.
You might even have a presentation you’d like to share with others. If so, just upload it to PowerShow.com. We’ll convert it to an HTML5 slideshow that includes all the media types you’ve already added: audio, video, music, pictures, animations and transition effects. Then you can share it with your target audience as well as PowerShow.com’s millions of monthly visitors. And, again, it’s all free.
About the Developers
PowerShow.com is brought to you by CrystalGraphics, the award-winning developer and market-leading publisher of rich-media enhancement products for presentations. Our product offerings include millions of PowerPoint templates, diagrams, animated 3D characters and more.