Estimation, Revision Control, Rose, and More? CSE403 Lecture #2 Estimation, Revision Control, Rose, and More?
Let’s Start With More UNIX groups Group name, members, logins Will talk about Rose a little today, but more next week Freedom with these quiz sections Let me know what you need to know Suggestions in e-mail
Very Brief Rose Overview Iterative development Produce a series of systems Attack highest risks first Each iteration is part of the final product Produces C++ code from Graphical Views Supports Reverse Engineering Is fairly complex
Rational Rose Installed? Check out the demo Can be found in the dist-area on rfilesrv1 in the miscellaneous folder spend time with the tutorials Complex piece of software Won’t be able to give you all you’ll need in quiz section Learn what you can and I will try to fill in holes (let me know where the holes are)
Project Estimation Know if the project is possible Bad (or no) schedules reduce efficiency Better progress visibility Higher Morale Making estimates and evaluating them during the project will help improve future estimates Use several techniques!
Function Points One way to estimate system size Somewhat specific to business applications More information on page 421 of your text
Lines of Code (LOC) Another Estimation technique Can be done directly and by converting Function points into LOC (Page 422 of your text) Varies greatly by implementation language
Schedule? COCOMO model (Page 430 of your text) Uses LOC Uses 15 ‘Effort Multipliers’ Jones’s First-Order Estimation Practice Uses Function points schedule in month = # function points ^ .43 .43 is part of the mode (see Rapid Development by Steve McConnell for more information) and is based on efficient work on a business product
Schedule? (continued) Direct LOC estimates From the McConnell book Based on efficient work on a business product
CVS (Concurrent Versions System) Protects all of the files associated with a project Allows multiple developers to safely work on files at the same time Unroll bad changes It’s just plain good software engineering to use some form of revision control
What exactly does CVS do? Keeps a single definitive copy of all the projects files in a centralized place Allows developers to make local copies of the project files, modify them, and then commit changes when ready Supports logs, tagged versions of files, conflict detection/resolution and many other important things
How do I get CVS to do all that for me? Make a directory for the main copy of the sources (e.g. /proj/se/) Make a directory called CVSROOT in that directory (e.g. /proj/se/CVSROOT) Set an environment variable $CVSROOT (e.g. CVSROOT=“/proj/se/”) read ‘man cvs’ for more information