An Overview of Tools Available in CS 501 Ken Hopkinson

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

MS Access.
1. What is Subversion? Why do we need CM? Basic concepts Repositories Options Setup Clients Options Setup Operation Troubleshooting Slide 2.
Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Developing an Excel Application
Tutorial 8: Developing an Excel Application
LINUX-WINDOWS INTERACTION. One software allowing interaction between Linux and Windows is WINE. Wine allows Linux users to load Windows programs while.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Programming Creating programs that run on your PC
Concepts of Version Control A Technology-Independent View.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
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.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
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.
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
Welcome to the Power of 64-bit Computing …now available on your desktop! © 1998, 1999 Compaq Computer Corporation.
Introduction to Version Control
Version Control with Subversion Quick Reference of Subversion.
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Section 2 Software.
Chapter 4: Software Configuration Management (SCM)
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
…using Git/Tortoise Git
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Productivity Tools Ken Nguyen Department of Information Technology Clayton State University.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Debugging and Profiling With some help from Software Carpentry resources.
ClearCase Concepts and Terminology
Samba – Good Just Keeps Getting Better The new and not so new features available in Samba, and how they benefit your organization. Copyright 2002 © Dustin.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
Data Display Debugger (DDD)
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
1 MSTE Visual SourceSafe For more information, see:
Debugging 1/6/2016. Debugging 1/6/2016 Debugging  Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a program.
BIF713 Operating System Concepts MS Windows. Agenda 1. What is an Operating System (definition)? 2. Types of Operating Systems 3. Basic Operations: –
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
SQL SERVER 2008 Installation Guide A Step by Step Guide Prepared by Hassan Tariq.
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
Recitation 2: Abhijit Warkhedi2/25/20161 Today’s Agenda u CVS u GDB.
Visual Source Safe –A Quick Tour. CONTENTS What is VSS ? How to install VSS ? How does VSS track versions? VSS Concepts & Features Utilities available.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Software testing techniques Software testing techniques REGRESSION TESTING Presentation on the seminar Kaunas University of Technology.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
SQL Database Management
Information Systems and Network Engineering Laboratory II
DBMS & TPS Barbara Russell MBA 624.
Open Source Software Development Environment
Version control, using Git
Design and Programming
Presentation transcript:

An Overview of Tools Available in CS 501 Ken Hopkinson

CS 501 : An Overview of Helpful Tools 2 Talk Overview  Rational Rose for Design  Source Management Tools  A Selection of Available Development Environments  Debugging Techniques

Using Rational Rose for Project Design

CS 501 : An Overview of Helpful Tools 4 Start Rational Rose

CS 501 : An Overview of Helpful Tools 5

6 A Typical Design

CS 501 : An Overview of Helpful Tools 7 Another Sample Design Case

CS 501 : An Overview of Helpful Tools 8 Remember Your Specifications

CS 501 : An Overview of Helpful Tools 9 Specification Fields

CS 501 : An Overview of Helpful Tools 10 General Specification Fields

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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  You’ll end up doing something equivalent anyway so it may as well be automated

CS 501 : An Overview of Helpful Tools 13 Source Code Management Tools Are Not  A substitute for project management  A replacement for developer communication

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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)

CS 501 : An Overview of Helpful Tools 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 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 23 Examples  RCS –Solaris: man rcsintro  CVS –Solaris: man cvs –  Visual SourceSafe –msdn.microsoft.com/SSAFE  ClearCase –  SourceForge –

CS 501 : An Overview of Helpful Tools 24 RCS  File management only  Transaction model –check out and lock –edit –check in and unlock  Little support for binaries

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 26 SourceSafe  Microsoft’s entry into the field  Project-based  Checkout-edit-checkin model  Built-in web site creation tools  Integrates with MSDEV

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 28 Clearcase Features  Distributed System –Several groups at different locations can work on the same database  Can install triggers –Example: the author of a file when some one makes a change to it  Uses merging model like CVS, but can also lock files

CS 501 : An Overview of Helpful Tools 29 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

CS 501 : An Overview of Helpful Tools 30 SourceForge  On-line Version Control System  Projects are available for public discovery and development  A very good environment for open source projects

CS 501 : An Overview of Helpful Tools 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)

Development Tools Available at Cornell at No Charge to You

CS 501 : An Overview of Helpful Tools 33 MSDNAA  Windows XP  Visual Studio.Net  Windows CE Development Tools  Microsoft SQL Server  Visual SourceSafe

CS 501 : An Overview of Helpful Tools 34 Freely Available Software  GNU  Free Software Foundation  Other Public Software Freely Distributed

CS 501 : An Overview of Helpful Tools 35 Useful Public Software  Apache Web Server  g++/gdb  Perl  Python  CVS

CS 501 : An Overview of Helpful Tools 36 Software Installed in Public Windows/Unix Labs  Microsoft Office including MS Access  Purify  CVS Server  Unix Shell Access

CS 501 : An Overview of Helpful Tools 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.

CS 501 : An Overview of Helpful Tools 38 A Closer Look at Two Cool Development Tools  Purify  Microsoft Visual Debugger

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 42

CS 501 : An Overview of Helpful Tools 43

CS 501 : An Overview of Helpful Tools 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->Start Debug->Attach to Process menu option

CS 501 : An Overview of Helpful Tools 45 The Visual Debugger

CS 501 : An Overview of Helpful Tools 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->Condition)  Conditional breakpoints detached from any one line in the program are also possible, but make program execution very slow (Data).

CS 501 : An Overview of Helpful Tools 47 Breakpoint Window

CS 501 : An Overview of Helpful Tools 48 Conditional Window

CS 501 : An Overview of Helpful Tools 49 Conditional Data Breakpoint

CS 501 : An Overview of Helpful Tools 50 Examining Program State  Print and/or Change variable state.  Walk up/down the stack trace.  View disassembled code.

CS 501 : An Overview of Helpful Tools 51

CS 501 : An Overview of Helpful Tools 52 Quick Print/Change Variables

CS 501 : An Overview of Helpful Tools 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

CS 501 : An Overview of Helpful Tools 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 Project’s Success