CSCI 4830/8836: Introduction to Software Engineering

Summer 2018
Meeting time: Thursdays 6-8pm and online components
Classroom: PKI 155
Instructor: Dr. Harvey Siy
Office: PKI 281B
Phone: (402)554-2834
Email: hsiy at unomaha dot edu
Office Hours: Thursdays 5-6pm, or by appointment (call or email ahead)
Textbook: Software Engineering (10th edition) by Ian Sommerville, Addison-Wesley, 2010
  Companion website
  link to 8th Edition
Optional: Engineering Software as a Service: An Agile Approach Using Cloud Computing (1st edition) by Fox and Patterson, 2014.
Optional: Object-Oriented Software Engineering (3rd edition) by Bruegge and Dutoit, Prentice Hall 2004.
  Companion website


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

How the hybrid course works

We will meet every Thursday until August 9. The meeting times will primarily be used for class discussions as well as project discussions. To prepare for class discussions, the lecture materials will be uploaded and students will be expected to read them before the next meeting. Expect to spend at least 2 hours per week doing the online readings and exercises.

Lectures slides

The lecture slides will mostly come from the Sommerville textbook's companion website plus a few changes of my own. The originals can be downloaded from companion website

Some lectures will also be taken from Fox and Patterson (aka ESaaS book) and Bruegge and Dutoit (aka OOSE book).

The lecture slides will be posted on Canvas.

In-class schedule

WeekTopicBackground Readings and ReferencesProject-related Discussions
5/17What is Software Engineering?Sommerville Ch. 1 (Introduction)Team formation
5/24Software process modelsSommerville Ch. 2 (Software Processes), Ch. 3 (Agile Software Development)Trello and other project tracking tools
5/31Requirements engineeringSommerville Ch. 4 (Software Requirements), ESaaS Ch. 7 (Requirements: BDD and User Stories)How web frameworks work
6/7System perspectives and modelsSommerville Ch. 5 (System Models), OOSE Ch. 2 (Modeling with UML), OOSE Ch. 5 (Analysis)Git and Github
6/14ArchitectureSommerville Ch. 6 (Architectural Design)Web application deployment
6/21Design principles and patternsSommerville Ch. 7 (Design and Implementation), OOSE Ch. 8 (Design Patterns)Object modeling discussion
7/5TestingSommerville Ch. 8 (Software Testing), ESaaS Ch. 8 (Test-Driven Development)Automated testing tools
7/12Software evolutionSommerville Ch. 9 (Software Evolution), ESaaS Ch. 9 (Maintenance: Legacy, Refactoring, and Agile)Configuration management tools
7/19Project management revisited (critical paths) Sommerville Ch. 22 (Project Management) and 23 (Project Planning)Architecture presentations and discussion
7/26Design principles revisited (SOLID)ESaaS Ch. 11 (Design Patterns)
8/2Dependability and critical systems
Recap of SE Code of Ethics
Sommerville Ch. 10 (Dependable Systems)
Sommerville Ch. 1 (Introduction)


Term Project: 40%
Midterm: 20%
Final: 20%

Exam dates

  1. Midterm - June 28
  2. Final - August 9

Graduate student research paper

Students taking the class as CSCI8836 will also be required to submit a 10-15 page, graduate-level research paper. (Please make an appointment to see me within the first two weeks of class to discuss appropriate topics.)

Term Project

The term project is discussed in a separate page.

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 follow 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 be handed directly to me on the day it is due.

Academic Integrity

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