About CS 5382
This page is organized as follows:
Course Description
The following description is excerpted from the Graduate Course Catalog:
The study of the production of high-quality software systems. Topics may include process improvement models, deductive and inductive program synthesis, clean-room programming, and software project management. May be repeated for credit when topic varies.
The goals of this course are:
- to learn Cleanroom methods of software development and
- to learn basic concepts of formal methods by studying several formal specification languages.
Cleanroom methods are a lightweight or semi-formal approach to software development, originally developed by IBM. The "Cleanroom" name was taken from the electronics industry, where a physical clean room exists to prevent introduction of defects during hardware fabrication, and the method reflects the same emphasis on defect prevention rather than defect removal. Special methods are used at each stage of the software development to avoid errors. The key component is the use of specification and verification, where verification means proving, mathematically, that a program agrees with its specification. The beauty of the approach is that one can tune the level of formality, e.g., from mathematical formulae to informal natural language descriptions.
Topics:
- Cleanroom methods
- Basic concepts of formal methods
- Formal specification languages
- Pre and post assertions
- Formal verification
Prerequisites
None.Course Texts
The course textbook is:
Allan M. Stavely. Toward Zero-Defect Programming, Addison-Wesley, 1999.
The textbook is available at the UTEP bookstore, and you are expected to acquire a copy for your use in this course, as reading assignments will be taken from the textbook.
Additional supplementary readings will be available from the the Schedule page.
Learning Objectives
Level 3: Synthesis and Evaluation
Level 3 outcomes are those in which the students can apply the material in new situations. This is the highest level of mastery.
Upon successful completion of this course, students will be able to:
- Adapt the Cleanroom approach to other programming languages and constructs.
- Combine or integrate the Cleanroom approach with other formal specification techniques.
Level 2: Application and Analysis
Level 2 outcomes are those in which the student can apply the material in familiar situations, e.g., can work a problem of familiar structure with minor changes in the details.
Upon successful completion of this course, students will be able to:
- Using a common formal specification language, formulate the specification of a simple software system and demonstrate the benefits from a quality perspective.
- Create and evaluate pre- and post-assertions for a variety of situations ranging from simple through complex.
- Apply verification techniques to code with low complexity.
- Refine specifications of low complexity into executable code.
Level 1: Knowledge and Comprehension
Level 1 outcomes are those in which the student has been exposed to the terms and concepts at a basic level and can supply basic definitions. The material has been presented only at a superficial level.
Upon successful completion of this course, students will be able to:
- Explain main steps of the Cleanroom process.
- Explain the potential benefits and drawbacks of using formal specification languages.
- Translate into natural language a software requirement specification written in a commonly used formal specification language.
Last modified by Yoonsik Cheon: $Id: description.html,v 1.6 2010/01/12 04:24:51 cheon Exp $