CSCI 4830/8836: Introduction to Software Engineering

Spring 2007

Meeting time: TR 7:00-8:15
Classroom: PKI 160
Instructor: Dr. Harvey Siy
Office: PKI 281B
Phone: (402)554-2834
Office Hours: MW 3-5pm, or by appointment (call or email ahead)
Email: hsiy at mail dot unomaha dot edu
Textbook: Software Engineering (8th edition) by Ian Sommerville, Addison-Wesley, 2006 (Note that the 7th edition will also suffice)
link to 5th Edition
Optional: Object-Oriented Software Engineering (2nd edition) by Bruegge and Dutoit, Prentice Hall 2004.


The course focuses on the engineering and development of real-world software products. It provides a pragmatic introduction into the fundamentals of software engineering. Basics of software project management are presented and are practiced in the term project.

Learning Objectives

Students who complete this course will:

Course content:

  1. Overview and motivations
  2. Requirements analysis
  3. Software design
  4. Verification and Validation
  5. Software evolution
  6. Project management
  7. Advanced topics


Students are expected to read the lecture materials in advance of each lecture. Please go to Blackboard to get the lecture slides.

Lecture 1 Introduction to Software Engineering (Ch. 1)
Lecture 2 The Big Picture (Ch. 2 & 3)
Lecture 3 Software Process Models (Ch. 4)
Lecture 4 Project Management (Ch. 5)
Lecture 5 Software Requirements (Ch. 6)
Lecture 6 Requirements Engineering Process (Ch. 7)
Lecture 7 Modeling With UML (Ch. 2 OOSE book)
Lecture 8 Requirements Elicitation (Ch. 4 OOSE book)
Lecture 9 Requirements Analysis (Ch. 5 OOSE book)
Lecture 10 System Models (Ch. 8)
Lecture 11 Architecture Design (Ch. 11)
Lecture 12 System Design (Ch. 6 & 7 OOSE book)
Lecture 13 Function-oriented Design From 5th Edition, Ch. 15 (download here)
Lecture 14 User Interface Design (Ch. 16)
Lecture 15 Verification & Validation (Ch. 22&23)
Lecture 16 Software Evolution (Ch. 21)
Lecture 17 Configuration Management (Ch. 29)
Lecture 18 Cost Estimation (Ch. 26)
Lecture 19 Formal Specification (Ch. 10)
Lecture 20A Critical Systems Specification (Ch. 9)
Lecture 20B Critical Systems Development (Ch. 20)
Lecture 21A Critical Systems Validation (Ch. 24)
Lecture 21B Rapid Application Development (Ch. 17)
Lecture 22 Software Reuse (Ch. 18 & 19)

Term Project

Students will work together in teams of 3-4 on a term project to be prepared by the instructor. The project will require a significant time commitment from the beginning to the end of the semester.

Term project objectives:


Students taking the class as CSCI4830 will be evaluated as follows:
Project: 35%
Midterm: 20%
Final: 20%
Quizzes: 10%
Homeworks: 10%
Class participation: 5%

Students taking the class as CSCI8836 will be evaluated as follows:
Project: 35%
Midterm: 20%
Final: 20%
Quizzes: 10%
Research paper: 15%

Assessing class participation

These are to be considered more as guidelines rather than strict rules.

5Regularly makes helpful, relevant contributions to lecture discussions.
Offers observations that challenges classmates to think about the material in new ways.
4Attends regularly and occasionally makes helpful, relevant contributions to lecture discussions.
3Attends regularly and actively pays attention to discussion.
2Attends regularly but does not pay attention to discussion.
1Does not attend regularly.
0Misses most classes.
(Adapted from

Policy on late homeworks

Late homeworks will get a 20% deduction per day, for each day past the due date. For online submissions, we will go by the time stamp as reported by Blackboard. For example, if the due date is Aug, 24, a submission on Aug. 25 12:01am will get a 20% deduction.

Paper submissions must still be handed directly to me.

Academic Integrity

Cheating will not be tolerated for project assignments, exams and other assignments. Consult the UNO Student Handbook and Department of Computer Science Policies and Procedures for formal policies about plagiarism.