Colorado State University Computer Science Department


Syllabus

CS 514: Software Product & Process Evaluation, Fall 2012

Both On-Campus and Distance Learning Sections


GTA/Distance Instructor: Aritra Bandyopadhyay

Course Designer, On-campus Instructor, and Course Supervisor: Prof. J. Bieman

Meets on campus: T+Th, 12:30-1:45PM, CS Building room 325. Also meets in Cyberspace.

Course Materials:

Course Description:

The objective of this course is to provide students with a working knowledge of the state of research and practice on software product and process evaluation and improvement. Students completing this course should be able to evaluate both software artifacts and software processes. Software product evaluation includes the evaluation of external characteristics such as usability and functionality, as well as internal characteristics such as design structure, testability and maintainability. Software process evaluation addresses the problem of understanding the software development process, assessing the quality of the process, and developing plans for process improvement. The use of quantitative methods in software engineering will be stressed. The course will also cover experimental methods as they are applied to evaluating software engineering methods.

Software testing is a major component of software product evaluation; testing consumes a large portion of most software development budgets. We will focus on testing object-oriented systems. Issues of interest include testing theory, the implications of design choices on testesting, and practical issues such as selecting and creating test data, testing tools, and the design of test support software.

Prerequisites:

CS 414 (and by transitivity CS 314), or consent of instructor. Students are expected to know the basics of software engineering as taught in an undergraduate course using a text such as Pressman, Software Engineering: A Practitioners Approach, or Somerville, Software Engineering . Students should have experience in designing and debugging object-oriented software, and have a basic understanding of object modeling notations such as UML, OMT, and/or Booch. Students are expected to have the basic background of the undergraduate core of computer science, which includes discrete math (sets, graphs, first-order predicate calculus), data structures, operating systems, and basic probability and statistics.
Note on CS 414 as a prerequisite: Officially CS 414 is a prerequisite. However, I accept CS 414 as a corequisite, since CS 514 depends on material from CS 414 primarily during the last half of the course which covers testing object-oriented systems. That means that you can enroll in CS 514 if you have already taken CS 414 or are taking CS 414 while enrolled in CS 514. You must have taken CS 314 or an equivalent software engineering course.

Grading (Subject to Change):

Final letter grades will be based on the relative distribution of total scores and not on any preset numerical scale.

Miscellaneous:

Late assignments will receive the penalties shown below; any deadline extensions must be approved in advance, and must be for reasons which are unexpected and beyond your control, and which involve only a short extension.

Homeworks are to be individual assignments unless instructed otherwise. Limited collaboration is permitted on homework. This means that you may discuss the means and methods for solving problems, but you are not free to copy someone's assignment. The work that you turn in must be your own --- copying is not allowed for any assignments. Collaboration on quizzes or exams, using another student's work as your own, allowing another student to use your work as their own, is academic misconduct and is not tolerated. Academic misconduct also includes copying material found in another source, for example an article in a journal or found on the web, without proper citations and quotation marks.

Respect the copyrights on course material including electronic copies of exams, the text, assignments, notes, research papers, etc. Further distribution is prohibited. You do not have permission to post this material on other sites.

Quizzes will generally test knowledge of assigned readings.

Written Work:

All written work submitted, unless otherwise specified, must be typed on 8.5 by 11 paper, have at least 1 inch margins all around and be printed in 10, 11, or 12 point type. All work should be single-spaced. Diagrams may be drawn by hand (and scanned), but must be neat and legible. Computer-aided drawing tools may also be used if appropriate. All work must be neat and legible. Illegible work will receive no credit. This includes work where the print contrast or darkness are too faint. Assignments will be submitted electronically through RamCT.

You are responsible for any announcements or handouts made in class. If you miss an exam you receive a score of zero. The department has a written policy regarding cheating, incompletes, and class attendance. This policy is described in the Student Information Sheet. More information on professional conduct and academic integrity follows.

Professional Conduct

Cheating/Student Ethics.  This course will adhere to the Academic Integrity Policy of the Colorado State University General Catalog and the Student Conduct Code. Read the following:

Professional Behavior in the classroom and Labs. We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular:

Academic Integrity. We take academic integrity seriously. At minimum, academic integrity means that no one will use another's work as their own. The CSU writing center defines plagiarism this way:

"Plagiarism is the unauthorized or unacknowledged use of another person's academic or scholarly work. Done on purpose, it is cheating. Done accidentally, it is no less serious. Regardless of how it occurs, plagiarism is a theft of intellectual property and a violation of an ironclad rule demanding `credit be given where credit is due'."
Source: (Writing Guides: Understanding Plagiarism. Off-Site Icon Accessed, January 15, 2009) http://writing.colostate.edu/guides/researchsources/understandingplagiarism/plagiarismoverview.cfm

If you plagiarize, get others to do your assignment, or do someone elses assignment you could lose credit for the plagiarized work, fail the assignment, or fail the course. Plagiarism could result in expulsion from the university. Each instance of plagiarism, classroom cheating, and other types of academic dishonesty will be addressed according to the principles published in the CSU General Catalog (see http://www.catalog.colostate.edu/FrontPDF/1.6POLICIES1112f.pdf).

Of course, academic integrity means more than just avoiding plagiarism. It also involves doing your own reading and studying. It includes regular class attendance, careful consideration of all class materials, and engagement with the class and your fellow students. Academic integrity lies at the core of our common goal: to create an intellectually honest and rigorous community. Because academic integrity, and the personal and social integrity of which academic integrity is an integral part, is so central to our mission as students, teachers, scholars, and citizens, we will ask to you sign the CSU Honor Pledge as part of completing all of our major assignments. While you will not be required to sign the honor pledge, we will ask each of you to write and sign the following statement on hard copy assignment submissions (except Assignment 0) and exams:

"I have not given, received, or used any unauthorized assistance."
Include the honor pledge on assignments submitted via RamCT in the "overview.txt" for programming assignment or on the solution file for problem assignments, along with the team members names.

More information on academic integrity. See the Practicing Academic Integrity section of the Learning@CSU Web site, a comprehensive resource for students wishing to hone their academic skills.

CSU Student Honor Code. Here is the text of the CSU Student Honor Code, approved by ASCSU and CSU faculty and staff in 2009:

As a student at Colorado State University, I recognize my active role in building a Campus of Character. This includes my commitment to honesty, integrity, and responsibility within the campus community. As such, I will refrain from acts of academic misconduct.

Topics (subject to change, not in order, as time permits):

  1. Introduction: the role of evaluation in software engineering, product vs process evaluation.
  2. Software measurement: theory, GQM, measurement frameworks.
  3. Product evaluation: external and internal, reliability, usability
  4. Resource evaluation: productivity and tools.
  5. Process evaluation: models, methods, and prediction.
  6. Experimental methods in software engineering: experiments, case studies, threats to validity.
  7. Software testing overview: foundations, functional and structural testing, testing process.
  8. Test requirements and coverage -- control flow, data flow, decision coverage.
  9. Testing object-oriented systems: testing issues unique to OO software, testability of designs, patterns for testing.
  10. Black-box system testing.


Last updated 6 August 2012.