Skip to main content.

Overview

Software engineering is a very broad field, virtually encompasses everything about software development: requirements, specifications, analysis, design, verification and validation, quality management, measurement, project management, change management, risk management, etc.  In this course, we will focus on the pragmatic aspects of individual software development.

Objectives

This is a practice-oriented software engineering course with emphasis on individual software development process.  After completing this course, students should:

  1. be able to apply the software engineering principles to their personal software development.
  2. be able to develop their personal processes, to plan and measure their personal work, and to manage the quality of their personal products.
  3. be able to use measurement and analysis to make project decisions and to guide process improvement.
  4. have data that show the improvement of their personal performance and the quality of their products.

Instruction Approach

In order to be successful in this course

  1. Students are required to read the textbook before attending each class session.
  2. Every week, there will be a quiz on the subject we are going to study.  A quiz will help students prepare for the upcoming topics.
  3. There will be approximately 1 programming assignment for each week.  These assignments are designed to stimulate the understanding of the compiler construction concepts while instituting the discipline software engineering practice.
  4. Every week, students will present progress and analysis of their personal PSP records.

References

The main textbook that we use in this course is

Watts S. Humphrey, PSP: A Self-Improvement Process for Software Engineers, Addison-Wesley, 2005, ISBN 0-321-30549-3

Course outline

The following schedule is tentative only; it may change depending on the circumstances. 

Week Topics
1 Introduction to PSP & TSP
2 The baseline personal process
3 Measuring Software Size
4 Planning
5 Software Estimating
6 The PROBE estimating method
7 Software Planning
8 Midterm
9 Software Quality
10 Design and Code Review
11 Software Design
12 The PSP Design Templates
13 Design Verification
14 Process Extensions
15 Using the Personal Software Process
16 Conclusion
17 Final Exam

Note that the above schedule is tentative by nature; it may change at the instructor's discretion.

Evaluation

The course evaluation will be divided equally between examinations and assignments.  The distribution of each half is shown below.  

Items Weight
Individual Assignments 15%
Group Assignments 15%
Discussion 15%
Game Participation 15%
Midterm Exam 20%
Final Exam 20%

Please make sure that you have carefully read and understand the academic policy.

Note that the above description is only tentative; it may change at the instructor's discretion.