Department of Computer Science @ Purdue University
Search | General Information | Academics | Research | People | External Relations

CS 307: Software Engineering I

List of Topics:

1. Introduction
   - Issues in software development
   - Life cycle models (waterfall, spiral, etc.)
   - Attributes of software
   - Social implications of software quality
   - Relationship with other disciplines

2. Specification - Requirements and design
   - Requirements specification
   - Design specification
     - Data flow diagrams
     - Entity - relationship diagrams
     - Finite state machines
     - Petri - nets
     - Algebraic specifications
   - Tools for specification
   - Design reviews
 
3. Testing
   - Testing versus debugging
   - Functional testing
     - Boundary value testing
     - Equivalence partitioning
     - Special value testing
   - Structural testing
     - Test adequacy
     - Coverage criteria
     - Path testing
     - Data-flow testing
     - Mutation testing
   - Overview of other testing methods
   - Tools for testing
   - Fault monitoring and categorization
   - Effectiveness of testing methods

4. Cost and effort estimation
   - Measures of software complexity
   - Cost and effort models
   - Applying the models
   - Pitfalls in cost/effort estimation

5. Overview of selected advanced topics
   - Reliability estimation
   - Parallel program design
   - Verification methods
1992.01