Download Assignment Kit for Program 4 - Introduction to Software Engineering | CS 350 and more Assignments Software Engineering in PDF only on Docsity!
CS 350: Assignment Kit for
Program 4
Spring 2006
Version 1.1 (subject to revision)
Feb. 28, 2006
Personal Software Process for Engineers
Assignment Kit for Program 4
Overview
Overview This assignment kit covers the following topics.
Section See Page
Prerequisites 2
Program 4 Requirements 3
Assignment instructions, PSP1 Process script 6
PSP1 planning script 7
Use of the PROBE method 8
PSP1 Development script 10
PSP1 Postmortem script 11
Due dates 12
Evaluation criteria 13
Prerequisites Reading
Test Data :
Since the program you are developing runs another program, what is needed for each test case differs from previous assignments. Let's call the program you write for this assignment Prog4 and the program it calls TP (for "test program".) Then the ultimate output of Prog4 is determined by: the data read by TP, the behavior of TP, the expected output file, and the behavior of Prog4. You are only testing the behavior of Prog4 but to test its behavior, you need: a. an input data file (which is read by TP). b. a test program, TP, c. the output TP should generate when it runs using the input file, and d. a file containing the expected output (the report file generated by Prog4). Other
Requirements:
In general, the grader will just scan the file for completeness. Because of the size of this class, the grader will NOT do anything special to compile and run your code (see below). The README file is included as a standard convention for documenting code for other programmers; it is not instructions to the grader on how to compile or run your code. You must include a functional Makefile with your code submission that the grader will use to compile your programs
What must be
submitted :
You should create a directory that contains everything listed above that is part of this assignment. For example, it might contain the files: Makefile Prog4.cpp TestCase input input input expected expected expected TestProgram1 Note: this is a program, not a set of data. TestCase input input input input expected expected expected expected TestProgram2 This is also a program, perhaps the same as test case 1 Note: your spacing in the “expected report” need not match exactly the spacing produced by your program, but the two should be easily compared by the grader. General Comments :
- You must use the submit command to submit your code.
- Your test data must be thorough (sufficient to catch most any defect in any proposed software solution).
- Your program must be thoroughly tested.
- Your program must be designed for reuse, a fundamental aspect of software development. This means, at the very least: Make it easy to reuse modules. Even a program this simple has components that might be reused in future software development projects.
This is more that just general good practice. Future programming assignments in this class will extend the capabilities of this program.
- This assignment involves both program creation and program testing. If your test data are inadequate, you will loose points on the assignment.
- Consider run-time and space efficiencies. You will loose points for inefficient implementations if there is an obvious implementation that requires little additional programming effort. In particular, do not read the contents of all files into memory and then compare their values. You should instead read a single value from each of the files, compare them, generate output as appropriate for those values, then read the next value from each file. Other Requirements :
- You must also submit a Makefile which the grader can use to compile your submission.
- The grader will compile and run your programs. It is your responsibility to make this easy for the grader. The grader will not debug your code.
- The grader will test your program using his own data. Hints:
- In the event of a large number of files, don’t worry about the width of the generated report. If it gets too wide to fit on one line and still be readable, this is not your problem.
- The next assignment will compare several pairs of files. That is, if the tester has prepared several test cases, the testing program should read the first expected file and the first actual file, compare their contents, then read and compare a second pair of files, etc. until all pairs of files have been processed. It is as if program 2 were put in a loop to run several times. This might effect your coding on this assignment.
- In general, it is your coding job to make sure what you submit is complete and can be compiled and run by the grader in a UNIX environment with no special effort.
Assignment instructions, Continued
Planning phase Plan program 3 following the PSP1 planning phase and the PROBE estimating
scripts.
PSP1 Planning Script Purpose To guide the PSP planning process Entry Criteria - Problem description
- PSP1 Project Plan Summary form
- Size Estimating template
- Historical size and time data (estimated and actual)
- Time Recording log Step Activities Description 1 Program Requirements
- Produce or obtain a requirements statement for the program.
- Ensure that the requirements statement is clear and unambiguous.
- Resolve any questions. 2 Size Estimate
- Produce a program conceptual design. Use any format that you prefer.
- Use the PROBE method to estimate the added and modified size of this program.
- Complete the Size Estimating template and Project Plan Summary form. 3 Resource Estimate
- Use the PROBE method to estimate the time required to develop this program.
- Using the To Date % from the most recently developed program as a guide, distribute the development time over the planned project phases. Exit Criteria - Documented requirements statement
- Program conceptual design
- Completed Size Estimating template
- Completed Project Plan Summary form with estimated program size and development time data
- Completed Time Recording log
Verify that you have met all of the exit criteria for the planning phase. After you
have checked your plan, proceed to the development phase.
Continued on next page
Assignment instructions, Continued
Use the PROBE method to create size and resource estimates.
Purpose To guide the size and time estimating process using the PROBE method Entry Criteria - Requirements statement
- Size Estimating template and instructions
- Size per item data for part types
- Time Recording log
- Historical size and time data General - This script assumes that you are using added and modified size data as the size-accounting types for making size and time estimates.
- On this assignment, your previous data may not be appropriate. You should proceed anyway, just to demonstrate that you understand the process. Thus, you may decide that procedure 4C is the most appropriate. If you do so, also complete procedure 4A. Step Activities Description 1 Conceptual Design Review the requirements and produce a conceptual design. 2 Parts Additions Follow the Size Estimating Template instructions to estimate the parts additions and the new reusable parts sizes. 3 Base Parts and Reused Parts
- For the base program, estimate the size of the base, deleted, modified, and added code.
- Measure and/or estimate the side of the parts to be reused. 4 Size Estimating Procedure
- If you have sufficient estimated proxy size and actual added and modified size data (three or more points that correlate), use procedure 4A.
- If you do not have sufficient estimated data but have sufficient plan added and modified and actual added and modified size data (three or more points that correlate), use procedure 4B.
- If you have insufficient data or they do not correlate, use procedure 4C.
- If you have no historical data, use procedure 4D. 4A Size Estimating Procedure 4A
- Using the linear-regression method, calculate the 0 and 1 parameters from the estimated proxy size and actual added and modified size data.
- If 0 is not near 0 (less than about 25% of the expected size of the new
program), or 1 is not near 1.0 (between about 0.5 and 2.0), use
procedure 4B. 4B Size Estimating Procedure 4B
- Using the linear-regression method, calculate the ^0 and 1 parameters from the plan added and modified size and actual added and modified size data.
- If ^0 is not near 0 (less than about 25% of the expected size of the new
program), or 1 is not near 1.0 (between about 0.5 and 2.0), use
procedure 4C. 4C Size Estimating Procedure 4C If you have any data on plan added and modified size and actual added
and modified size, set 0 = 0 and 1 = (actual total added and modified
size to date/plan total added and modified size to date). 4D Size Estimating Procedure 4D If you have no historical data, use your judgment to estimate added and modified size.
(continued)
Continued on next page
Assignment instructions, Continued
Development phase Develop the program following the PSP1 development phase script.
PSP1 Development Script Purpose To guide the development of small programs Entry Criteria - 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 Activities Description 1 Design - 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. 2 Code - 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. 3 Compile - 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. 4 Test - 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.
- Complete a Test Report on the tests conducted and the results obtained.
- A Test Log (generated by the script command) Exit Criteria - A thoroughly tested program that conforms to the Coding standard
- Completed Test Report and test log
- 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
Assignment instructions, Continued
Postmortem
phase Conduct the postmortem following the PSP1 postmortem script.
PSP1 Postmortem Script Purpose To guide the PSP postmortem process Entry Criteria -^ Problem description and requirements statement
- Project Plan Summary form with program size and development time data
- Completed Test Report template
- Completed Time and Defect Recording logs
- A tested and running program that conforms to the coding and size measurement standards Step Activities Description 1 Defect Recording - 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. 2 Defect Data Consistency
- 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. 3 Size - Count the size of the completed program.
- Determine the size of the base, reused, deleted, modified, added, total, added and modified, and new reusable code.
- Enter these data in the Project Plan Summary form. 4 Time - 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 measurement standards
- Completed Test Report and Log
- 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 PSP1 postmortem phase, then
submit your assignment.
Continued on next page
Guidelines and evaluation criteria for program 3
Evaluation criteria
Your process report must be
- complete
- legible
- in the specified order
Your process data must be
- accurate
- precise
- self-consistent
Suggestions 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 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.