CMPS115 FAQ's

What will be on the final exam?
Answer: If you can answer the questions from the 3 quizzes, then you will be well prepared for the final exam. You can expect questions very similar to those you have already had.

Is regression testing done during maintenance? Because it's just testing additional code against the already implemented application. So during regression testing you just test to make sure that the new code added is compatible with the old application. In other words, if you did a system test with the new code, the results should be the same as it was before the new code was added.
Answer: If I understand your question and comments correctly, you are correct. Regression testing is done whenever changes are made to software (or should be). Regression testing means: take the existing system tests (for the system prior to the change) and run them on the system after the change has been integrated. Observe that the existing system tests test NO functionality for the change (because they were created to test the system's functionality prior to the change). Given that we are talking about this being done after changes are made to the software, this is done during maintenance. Once we determine that the regression tests pass, we know that the functionality provided by the system prior to the change still works properly. Now we need to determine if the added functionality works. Therefore, we write additional test cases to be added to the system test. We run these added tests to validate the system. And these test cases are added to the system test suite to be used to regression test the system after the NEXT set of changes are integrated.

Can you give me an idea of what to expect in quiz III??
Of course, you're responsible for the material in the past 2 quizzes. Topics of importance from these exams include: inspection, life cycle, design principles (including using UML). In addition, the material on verification and validation is important. You should know how to do unit testing. You should understand how to create test cases using functional and structural approaches. You should understand when the following types of testing are done and how and why test cases are derived for these types of tests: system test, acceptance test, integration test, regression test, unit test, usability test. You should be familiar with the material in chapter 7, sections 2, 3, and 6.

What should I read in chapter 7?
Read sections 2, 3, and 6.

Can you give me an idea of what to expect in quiz II?
Given a class diagram (with classes, multiplicities, types of relationships) and given a use case, draw the sequence diagram and put the member functions and attributes into your design. Also, expect a question about coupling and cohesion. Given the description of a complex system, discuss the coupling and cohesion of it and suggest how it could be improved.

Where can I find information about this course?
Some additional information is posted on the course newsgroup - ucsc.class.cmp115

Can you give me a sample quiz question and answer?
Name four major stages in the development of a software product. Describe in 8 sentences or less what is done during each of these phases.
Answer: Four major stages include requirements analysis and specification, architectural and detailed design, coding, and testing. During requirements analysis and specification the developers determine and describe what the product is meant to be. In architectural design, the developers state the modules, the purpose of each module, and the interconnections between the modules. In detailed design, the developers describe the logic that is to be used to implement each of the modules. The developers implement each of the modules in the coding stage. Each module needs to be unit tested; the modules, once unit tested, need to be integrated and tested while they are assembled; and once the whole system is integrated, the entire system must be system tested. When testing any piece of the system, test data is specified, expected output is given, and then the system piece is executed with that input test data. The expected output is compared with the actual output.

I'm having trouble accessing the templates for the milestones.
Go to the newsgroup for this course. ucsc.class.cmp115. There are messages there with zip files of the powerpoint slides and of the milestone case study examples. I'm also having difficulty with the textbook's website. The publisher is trying to fix the problems. In the meantime, find this information in the newsgroup messages.

Where can I access the templates for the milestones?
Go to the textbook site and follow the links to the Companion sites: Student. You'll find the PowerPoint slides and case studies' files that can be used as templates for your milestones.

Tell me more about the project
The topics covered in the project part of this course are those required to support the development of a group program design and development project. You are to design and develop a computer game of your choice. It can be a board manager for human competitors of a game such as checkers, poker, bridge, Othello, backgammon, mancala, Nine Mens Morris, chess, go, or an invented one of your own. Or the game can be one in which the computer is one of the competitors, using one of the before mentioned games or one of your choosing. You will work in groups of 4 or 5 people. You are required to choose the software platform upon which the game will be developed and run. The game MUST be operable on the machines in the mandatory lab. All project documentation MUST be in your group's project notebook.

To help you with the project, a case study is used throughout the textbook. Examples of the documents needed at each of the milestones are found within the text in the associated chapters, in the appendices, and on a web site associated with the textbook. Your project work should resemble this case study. There are other forms for the documentation of a software development project (other than those used in the textbook). It is possible for you to use one or more of the other forms for design or specification. Please get approval from the instructor before using something other than what is used in the case study. The last class day has been reserved for project demonstrations and grading to be held in the lab. A working version of your game is due and your project notebooks MUST be up-to-date and ready to be graded on that date.

The following documentation is to be prepared and submitted at indicated times (milestones) and RE-SUBMITTED on the last day of classes (in the lab):

  1. software requirements specification part 1 document, team meeting notes, logs;
  2. paper prototype, preliminary user manual, team meeting notes, logs;
  3. software requirements specification part 2 document, team meeting notes, logs;
  4. architectural design document, team meeting notes, logs;
  5. detailed design document, team meeting notes, logs;
  6. unit test report, team meeting notes, logs;
  7. code, team meeting notes, logs;
  8. software test documentation, team meeting notes, logs;
  9. system test, team meeting notes, logs;
  10. properly documented, debugged, and tested program - submit disk, team meeting notes, logs; entire project notebook including project file on disk and project postmortem document.
You will be given guidelines and grading criteria for each of these milestones. Each milestone is to be given to the TA's or instructor responsible for your group on the date following the in-class inspection for that milestone. except for the last one which is due in lab at the last class.

How is the project graded?

There are three major issues involved with project grading: assigning credit to the project, assigning credit for individuals within groups, and assigning credit for difficulty differences among projects. The following will describe how the project grading addresses each of these three issues.

There are 10 milestones listed in your syllabus: (SRS part 1, paper prototype, SRS part 2, ARCH design, detailed design, unit test, code, software test documentation, system test, entire project notebook). You will receive at least one separate grading sheet for each of these. The total possible points on the entire project is equal to 100 * (# students in group). Call this value Total. For example, if you have 5 group members, Total = 500. Each of the milestones are given the same weight: 10% of the project points.

Ideally, each of you will contribute equally to the effort needed for your project and each of your grades will be (1/# students in group) * Total. Realistically, some of you are more motivated or more organized than others and will put in more time on the project. Some are more talented or knowledgeable than others and produce higher quality work. In other courses, students who do more or do higher quality work get better grades than students who do less or do work of a lesser quality.

At each milestone, you are to turn in secret email ballots on which you rate your own and all other of your group members' efforts and credit on the documents due at that milestone. For example, immediately after you have turned in your requirements specification, you are to divide 100 percentage points among all your group members in proportion to the effort and credit each deserves. For example, if each of the 5 group members worked equally on the requirements specification document, then you should assign each one 20%. I will average these votes and assign an individual project score based on this average. In past classes, I've had groups that have chosen to divide the percentage points equally among the members right from the start. If all members of a group choose to do this, send me email once indicating this. I will assume that the percentage points are divided equally if I do not receive mail from a group member.

I reserve the right to request the TA/instructor responsible for the group to vote in the group. The motivation for this addition is to prevent you from working on the project up to the point where you or some number of the students in a group have earned a passing grade, then quit working on the project. Project members who 'flake out' on their teammates will experience the consequences.

I will assign up to an additional 10% to your project score based on a difficulty factor that I assign to your project. A group that chooses to implement a simple game such as Tic-Tac-Toe will probably get no additional points. Having a computer opponent option on a complex game could add to the difficulty factor. Work on an implementation of a game similar to Tetris could get an additional 10% added. You are encouraged to keep the game SIMPLE.



Linda L Werner