Computer Science
587 - Fall 2009
Software
Verification and Validation
Instructor: Bob Lingard
Office: JD 4417
Office
Phone: 677-3825
Email
Address: rlingard@csun.edu
Web
URL: http://www.ecs.csun.edu/~rlingard
Office
Hours: MW 2-3 PM, W 5-6 PM, and
by appointment
Prerequisite: Comp 380/L (Introduction to
Software Engineering)
Text: Software Verification and Validation for Practitioners and Managers,
2nd
Edition, by Steven R. Rakitin
Ticket#
17639 Meets W 7:00 – 9:45 PM
in JD3508
Course
Description
An in depth study of verification and validation strategies and techniques as they apply to the development of quality software. Topics include test planning and management, testing tools, technical reviews, formal methods and the economics of software testing. The relationship of testing to other quality assurance activities as well as the integration of verification and validation into the overall software development process are also discussed.
Grading
An
absolute grading system will be used, where 90% is required for an A, 80% for a
B, 70% for a C, 60% for a D, and anything below 60% is failing. Pluses and minuses will be given for grades
within 3 percentage points of the dividing marks. For example, a final total which is 80% or
more but less than 83% would correspond to a letter grade of B-, a total of 77%
or more but less than 80% would correspond to a C+, etc. The final grade will be based on the
following:
Midterm Exam 15%
Final Exam 30%
Group Projects 20%
Individual Projects/Homework 15%
Presentations 20%
Late
work will be accepted without penalty only if some compelling reason is
provided (preferably in advance) justifying the lateness. Without such a justifiable excuse, late work
will be penalized 5% for each calendar day that it is late (with a
maximum penalty of 50%).
Plagiarism
(intentionally or knowingly representing the words, ideas, or work of another
as one’s own) or any other form of academic dishonesty will not be
tolerated. Students who are guilty of
such dishonesty will receive no credit for the given assignment or exam and
will not be allowed the opportunity to redo the work in question. In addition, incidents of academic dishonesty
may be reported to the University and further disciplinary actions are
possible.
The exams may be “take home” exams or “in class” exams. They may be open book or closed book, but, in any case, they must be individual efforts. Discussing the questions on the exam with an individual, other than the instructor, is not permitted.
The students in the class will be divided into teams of four to five members each. The group projects will be done as team efforts and a single result will be turned in by the team. Members of each team will evaluate the performance of the other team members at the end of the semester. This evaluation will account for 25% of the total Group Project grade (or 5% of the total course grade).
Individual
assignments and projects will also be given.
Discussion and collaboration with other class members on individual
assignments is permitted, and even encouraged, to the extent that said
collaboration is a fair and equitable exchange of ideas. That is, one individual should not be doing
all the work and sharing it with others.
It is permissible to ask other students for help, but it is not
permissible to copy the results of others.
If several students collectively solve a problem, each should write up
the results in his or her own words.
Each student will be required to select a technical article on a subject relevant to the course, review and analyze the article, and present a summary and critical evaluation to the class.
Tentative
Schedule by week
1
Review
of software engineering methods and challenges
The software crisis
Benefits of verification and validation
Software process improvement initiatives
2
Review
of software engineering methods
Life-cycle models
The role of verification and validation
3
The
economics of verification and validation
Defect cost models
Measuring the cost of quality
4
Software
reviews and inspections
5
Conducting
reviews and inspections
6
Software
quality metrics
7
Review
of software configuration management
8
Software
testing overview
9
Functional
testing
10
Integration
and system testing
11
Object-oriented
testing
12
Software
validation metrics
Assessing and improving the validation process
13
Assessing
software quality
14
Improving
the development process
15
Formal
methods, cleanroom software engineering and
statistical approaches