Computer Science
DepartmentInstructor: Dalal Alrumny
Course Designer and Course Supervisor: Prof. J. Bieman
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.
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.
Final letter grades will be based on the relative distribution of total scores and not on any preset numerical scale.
Late assignments are not accepted; 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. 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.
Quizzes will generally test knowledge of assigned readings.
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.