ࡱ> ?A>q bjbjt+t+ "$AA$9]@@@TTTT8T h:("""wwwK"="_ $"# @wU"www ""3w(8"@"TTwN M_(@" y:TT(" Project Title: Generic Version Control Front End Project Manager: Les Ramer Senior Software Engineer Phone: 317-554-7633 leslie.ramer@peregrine.com PROJECT SUMMARY Provide a preferably cross-platform GUI front-end to access disparate version control systems. PROJECT EXPLANATION/BUSINESS CASE Existing GUI front-ends to version control systems are usually poor. Switching from one version control system to the next becomes a hassle because the new system must be learned. Quite often a developer will stick only with the command-line because its easier to learn than the nuances of using different front-ends. If the GUI could be abstracted such that it could interface with different version control systems via command-line shell invocations from the GUI, the switch from one version control system to the next could be lessened. TECHNICAL EXPOSURE Students will be exposed to version control systems; something that few if any schools teach. Yet version control systems are so critical to a software business that it would be extremely difficult to do business without them. Students could choose to represent their data files in XML format; depending on their interest in open cross-platform data formats. In providing such a tool, every action that goes to the version control system must be configurable, and probably scriptable with some kind of parameter replacement strategy. PROJECT TOOLS A couple of free version control systems to abstract their interface upon. One suggestion is CVS. (Peregrine presently uses Perforce see  HYPERLINK "http://www.perforce.com" www.perforce.com; Tivoli used CMVC) Java is a reasonable choice for a front-end GUI (the JDK is a free download from Sun). Free XML parser (optional). Suggestion SAX or w3.orgs DOM (Document Object Model). Parser for command-line output (Berkleys LEX & YACC or GNUs Bison & Flex); There is another parser available from  HYPERLINK "http://www.metamata.com" http://www.metamata.com that can be used from Java. Students may desire to use a UML modeling tool like Rational Rose ( HYPERLINK "http://www.rational.com" www.rational.com); however, there are other UML tools that may be easier to get. SPECIAL ISSUES/CHALLENGES The foremost challenge is modeling project structures and file versioning. Some systems only have a single increasing version number, whereas others (like PVCS) have ever expanding version numbers based on concurrent checkouts that occur when another user has the files locked. PVCS also has the concept of promotion groups (for example, production, candidate, user.) The second problem is coming up with a versatile parser for handling the output and returns from the command-line version control utilities. An extremely successful project would permit the extension for unanticipated versioning systems through customizations of their parser. The varied nature of different version control systems may preclude an all-out generic front-end, leaving a solution for certain classes of version control systems the only plausible solution. POTENTIAL PROJECT DIRECTIONS The creation of a front-end for version control systems is not unique. The idea for abstracting the version control GUI for multiple version control systems is unique and a worthwhile endeavor. The project could be segmented such that other teams could pick up where another leaves off. The management of scope, as usual, is an important lesson for the accepting team to learn. STUDENT BENEFITS Experience using version control systems before entering the job market Exposure to open-source tools Learning project management skills Exposure and potential for exposure to hot technologies like XML, Java, and parsers A foot in the door with Peregrine (i.e., potential for employment, either as summer internships or as full-timers upon graduation). Exposure to good GUI design (e.g., good context menus, easy-to-use tree controls for projects, etc) PEREGRINE BENEFITS This project will allow Peregrine to sample the talent coming out of Purdue Universitys CS Department and also presents an opportunity for students to work on a project that Peregrine may potentially be able to utilize internally (this depends on how easy the tool is to use). Page  PAGE 2 of  NUMPAGES 1 PEREGRINE SYSTEMS SENIOR PROJECT PROPOSAL 2001-2002 5FPj~ .Naz   9 : ; K L ! " G H I Y Z qjOJQJUjOJQJU 0JOJQJjOJQJUjOJQJUOJQJ >*OJQJCJOJQJhnH CJOJQJhnH CJCJOJQJhnH  CJOJQJ5CJOJQJ5CJOJQJ jUmH05Pj~ .Naz `  & F  & F Z@$$d$5Pj~ .Naz ` 4 q   04 q$$$ ! & F & FOJQJ56CJOJQJ56CJ OJQJ CJOJQJCJOJQJhmHjCJOJQJUhCJOJQJh P/ =!"#$%DyK www.perforce.comyK 2http://www.perforce.com/DyK http://www.metamata.comyK 2http://www.metamata.com/DyK www.rational.comyK 2http://www.rational.com/ [0@0 Normal_HmH sH tH .@. Heading 1$5.@. Heading 2$6H@H Heading 3$@&CJOJQJhnH <A@< Default Paragraph Font(U@( Hyperlink>*B*, @, Footer  !&)@& Page Number,", Header  !88;$###& :K!HYXXX  &!8@(  P    "B S  ?P0!TEJ~Melissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.docMelissa HollingsworthSC:\personal\Senior Projects 2001-2002\Generic Version Control Front End-1-PU-DW.doc] R1  Jt )&>X.P4[) ZRP3 IdI FJ -w_ S?` +Kb KdB&* hh^h`OJQJo(hh^h`. hh^h`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo( hh^h`OJQJo(h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(R1ZRP3]Jt-w_IdIFJ+Kb4[)S?`Kd)&x@h h^h`OJQJo(@HP LaserJet 5Si PCL 5e\\INDY-PRINT1\AcaciaHPBFCB5HP LaserJet 5Si PCL 5eHP LaserJet 5Si PCL 5eXX",HP LaserJet 5Si PCL 5e0\ ƣQp1 Pb4␨ H|F= C ' 11'#C<62AR T4 Xm=O&QIތ Am *c-kR MxTKMSz1\Ux8X(7%~3b4^Q/)tFv7d:G;yP44Z1ܤMmZvދ7=m^j^;9C7[W tEg0o_GDwx4dDp5~EEuh ]]D\zC8)F ń\GLZwRT t3yGS툖'sfj#ZB(Ev)Ff%Ggy Щ!`d7NCE79+ R. SU4UHYCUP]XufY=%tbqEfU:J)!%%v7#mvT9T1oKhZRury AYjHa )]RU*ηWadvQ꺯R 꺷q\UTh$QDTog$B %&aj:ƒ־ _gVgqB,-:4cki Y' 6bC$NEL_#AZCڢx[K*A~zrjPT6U"=|Ş]ɶ)@HP LaserJet 5Si PCL 5eXX",HP LaserJet 5Si PCL 5e0\ ƣQp1 Pb4␨ H|F= C ' 11'#C<62AR T4 Xm=O&QIތ Am *c-kR MxTKMSz1\Ux8X(7%~3b4^Q/)tFv7d:G;yP44Z1ܤMmZvދ7=m^j^;9C7[W tEg0o_GDwx4dDp5~EEuh ]]D\zC8)F ń\GLZwRT t3yGS툖'sfj#ZB(Ev)Ff%Ggy Щ!`d7NCE79+ R. SU4UHYCUP]XufY=%tbqEfU:J)!%%v7#mvT9T1oKhZRury AYjHa )]RU*ηWadvQ꺯R 꺷q\UTh$QDTog$B %&aj:ƒ־ _gVgqB,-:4cki Y' 6bC$NEL_#AZCڢx[K*A~zrjPT6U"=|Ş]ɶ)@[[T[[P@G:Times New Roman5Symbol3& :Arial5& :Tahoma;Wingdings?5 :Courier New"AhUfUfDF g !20d0Senior Project Idea  Java Bytecode ManipulationSAIMelissa Hollingsworth Oh+'0  <H d p | 1Senior Project Idea Java Bytecode ManipulationngseniSAIAIAINormalPMelissa HollingsworthJa13iMicrosoft Word 8.0t@@,@r9"@%g  ՜.+,D՜.+,p, hp  Software Artistry, Inc.1 1Senior Project Idea Java Bytecode Manipulation Title(RZ _PID_GUID _PID_HLINKSAN{D8448B21-4AE3-11D5-BA99-00104BED3BD2}A<TMhttp://www.rational.com/ZEhttp://www.metamata.com/JKhttp://www.perforce.com/  !"#$%&'()*+,-/012345789:;<=@Root Entry Fk*=`!:BData 1Table$WordDocument"$SummaryInformation(.DocumentSummaryInformation86CompObjjObjectPool`!:`!:  FMicrosoft Word Document MSWordDocWord.Document.89q