Assignment Kit for Program 2 _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ Personal Software Process (PSP) for Engineers: Part I The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University. This material is approved for public release. Distribution limited by the Software Engineering Institute to attendees. Program 2 October 2006 1 2006 by Carnegie Mellon University Personal Software Process for Engineers: Part I Assignment Kit for Program 2 Overview Overview This assignment kit covers the following topics. Section Prerequisites See Page Prerequisites 2 Program 2 requirements 3 Program 2 hints 4 Assignment instructions 5 Guidelines and evaluation criteria 10 Reading • Chapters 3 and 4 Assignments • size counting standard • coding standard Program 2 October 2006 2 2006 by Carnegie Mellon University Program 2 requirements Program 2 requirements Using PSP0.1, write a program to count (in LOC) the • total program size • total size of each of the program’s parts (classes, functions, or procedures) • the number of items (or methods) in each part Produce and print • a single count for the entire program • size and item counts for each part together with the part name If LOC is not a suitable size measure for the language you use, see chapter 3 and the following “Hints” section for alternative ways to measure size. Then write program 2 to use those measures. Use the size counting standard and the coding standard defined in your report assignments. Thoroughly test the program. At a minimum, test the program by counting the total program and part sizes in programs 1 and 2. Example output is illustrated in Table 1. In Table 1, consider the word part to be whatever applies for your language: class, function, procedure, and so forth. Program Number 1 Part Name ABC DEF GHI Number of Items 3 2 4 Part Size Total Size 86 8 92 212 2 Table 1 Program 2 October 2006 3 2006 by Carnegie Mellon University Program 2 hints Hints Do not try to write a sophisticated counting program. For LOC counting, follow the counting strategy suggested in Chapter 3, page 48, Size Counters. If the classes, functions, embedded code, or anything else in your programming language is hard to identify and count, consider including special comments to identify such things for your counting program. Remember to modify your R1 counting standard and R2 coding standard to include these comments. You will also have to include such comments in every program, including program 1. For database application or other languages where the LOC measure may not be appropriate, identify the items that you think could provide useful counts. Be as complete as you can while keeping the counting approach simple. A simple sum of the basic countable elements will likely provide as useful a size measure as more sophisticated measures. Program 2 October 2006 4 2006 by Carnegie Mellon University Assignment instructions Before starting program 2, review the top-level PSP0.1 process script below to ensure that you understand the “big picture” before you begin. Also, ensure that you have all of the required inputs before you begin the planning phase. Assignment instructions PSP0.1 Process Script Purpose Entry Criteria To guide the development of module-level programs - Problem description - PSP0.1 Project Plan Summary form - Time and Defect Recording logs - Defect Type, Coding, and Size Counting standards - Stopwatch (optional) Step 1 Activities Planning 2 Development 3 Postmortem Description - Produce or obtain a requirements statement. - Estimate the added and modified size of this program. - Estimate the required development time. - Enter the plan data in the Project Plan Summary form. - Complete the Time Recording log. - Design the program. - Implement the design. - Compile the program, and fix and log all defects found. - Test the program, and fix and log all defects found. - Complete the Time Recording log. Complete the Project Plan Summary form with actual time, defect, and size data. Exit Criteria - A thoroughly tested program Completed Project Plan Summary form with estimated and actual data Completed PIP forms Completed Time and Defect Recording logs Continued on next page Program 2 October 2006 5 2006 by Carnegie Mellon University Assignment instructions, Continued Planning phase Plan program 2 following the PSP0.1 planning phase script. PSP0.1 Planning Script Purpose Entry Criteria To guide the PSP planning process - Problem description - PSP0.1 Project Plan Summary form - Time Recording log Step 1 Activities Program Requirements 2 Size Estimate 3 Resource Estimate Description - Produce or obtain a requirements statement for the program. - Ensure that the requirements statement is clear and unambiguous. - Resolve any questions. - Make your best estimate of the added and modified size of this program. - Enter the plan size data in the Project Plan Summary form. - Make your best estimate of the time required to develop this program. - Enter the plan time data in the Project Plan Summary form. - Using the To Date % from the most recently developed program as a guide, distribute the development time over the planned project phases. (Note: This step is completed by the SEI student workbook.) - Documented requirements statement - Completed Project Plan Summary form with estimated program size and development time data - Completed Time Recording log Exit Criteria Verify that you have met all of the exit criteria for the planning phase, then have an instructor review your plan. After your plan has been reviewed, proceed to the development phase. Continued on next page Program 2 October 2006 6 2006 by Carnegie Mellon University Assignment instructions, Continued Develop the program following the PSP0.1 development phase script. Development phase PSP0.1 Development Script Purpose Entry Criteria To guide the development of small programs - Requirements statement - Project Plan Summary form with estimated program size and development time - Time and Defect Recording logs - Defect Type standard and Coding standard Step 1 Activities Design 2 Code 3 Compile 4 Test Description - Review the requirements and produce a design to meet them. - Record in the Defect Recording log any requirements defects found. - Record time in the Time Recording log. - Implement the design following the Coding standard. - Record in the Defect Recording log any requirements or design defects found. - Record time in the Time Recording log. - Compile the program until there are no compile errors. - Fix all defects found. - Record defects in the Defect Recording log. - Record time in the Time Recording log. - Test until all tests run without error. - Fix all defects found. - Record defects in the Defect Recording log. - Record time in the Time Recording log. Exit Criteria - A thoroughly tested program that conforms to the Coding standard - Completed Time and Defect Recording logs Verify that you have met all of the exit criteria for the development phase, then proceed to the postmortem phase. Continued on next page Program 2 October 2006 7 2006 by Carnegie Mellon University Assignment instructions, Continued Postmortem phase Conduct the postmortem following the PSP0.1 postmortem script. PSP0.1 Postmortem Script Purpose Entry Criteria To guide the PSP postmortem process - Problem description and requirements statement - Project Plan Summary form with program size and development time data - Completed Time and Defect Recording logs - A tested and running program that conforms to the coding and size counting standards Step 1 Activities Defect Recording 2 Defect Data Consistency 3 Size 4 Time Description - Review the Project Plan Summary to verify that all of the defects found in each phase were recorded. - Using your best recollection, record any omitted defects. - Check that the data on every defect in the Defect Recording log are accurate and complete. - Verify that the numbers of defects injected and removed per phase are reasonable and correct. - Using your best recollection, correct any missing or incorrect defect data. - Count the size of the completed program. - Determine the size of the base, deleted, modified, reused, total, and new reusable code. (Note: The size of added and modified code is calculated by the SEI student workbook.) - Enter these data in the Project Plan Summary form. - Review the completed Time Recording log for errors or omissions. - Using your best recollection, correct any missing or incomplete time data. Exit Criteria - A thoroughly tested program that conforms to the coding and size counting standards - Completed Project Plan Summary form - Completed PIP forms describing process problems, improvement suggestions, and lessons learned - Completed Time and Defect Recording logs Verify that you have met all of the exit criteria for the PSP0.1 postmortem phase, then submit your assignment. Continued on next page Program 2 October 2006 8 2006 by Carnegie Mellon University Assignment instructions, Continued Submitting your assignment When you’ve completed the postmortem phase, submit your assignment package, source code, and test results to the instructor. The order for the assignment package is • PSP0.1 Project Plan Summary form • PIP form • Time Recording log • Defect Recording log • source program listing for programs 1 and 2 • test results You should also hand in your report assignments at this time. • size counting standard • coding standard Program 2 October 2006 9 2006 by Carnegie Mellon University Guidelines and evaluation criteria for program 2 Evaluation Criteria Your process report must be • complete • legible • in the specified order Suggestions Remember, you should complete this assignment today. Your process data must be • accurate • precise • self-consistent Keep your programs simple. You will learn as much from developing small programs as from large ones. If you are not sure about something, ask your instructor for clarification. Software is not a solo business, so you do not have to work alone. You must, however, produce your own estimates, designs, code, and completed forms and reports. You may have others review your work, and you may change it as a result. You should note any help you receive from others in your process report. Log the review time that you and your associates spend, and log the defects found or any changes made. Program 2 October 2006 10 2006 by Carnegie Mellon University