CSCE-606 Software Engineering (Fall 2012)

Course Essentials

CourseCSCE 606 – Software Engineering, TR 3:55 pm – 5:10 pm, HRBB 113
InstructorJaakko Järvi
Course pages
Office hoursBy appointment (my office is 416)
Teaching AssistantShiyu Hu (, office hours: see this link


  • Current grades are here
  • Assignment 1 is out
  • Assignment 2 is out
  • Assignment 3 is out

In a nutshell

Study of Software construction as an Engineering activity. Review of life cycle models and their phases, including topics in requirements elicitation, system specification and design, configuration managment, and testing. Topics in cost estimation, software reuse, analysing software, formally specifying software, software modularity, software design methodologies (and methodologies for design of software families).

The catalog description, that may be a bit dated, is here: ``Development of advanced concepts in software engineering; software development environments as a mechanism for enhancing productivity and software quality; the classification, evaluation and selection of methodologies for environments; rapid prototyping and reusability concepts; artificial intelligence techniques applied to software engineering.''


The goals of the course are to (1) gain understanding of the difficutlties and risks of software projects, and knowledge of the commonly applied techniques and methods to migitate those risks and to increase the likelihood of success of software projects; (2) learn new and increase existing skills related to practical software construction; and (3) gain familiarity with the current research problems in software engineering.


  • software lifecycle and different software processes
  • requirements elicitation and specification
  • modeling software
  • software design at various levels
  • coding practices, interfaces, modularity, contracts
  • verification and validation, testing
  • managing a code base (version control, organizing releases, etc.)
  • testing (unit and regression testing)
  • practical designs (typical software architectures, design patterns, API designs)
  • effort estimation
  • introduction to model checking and formal verification



10% of your course grade will be based on assignments and quizzes, 90% on a research project and/or exams. Lack of participation can degrease the grade otherwise achieved by up to 10%. A grade of 90% or above guarantees an A, 80% or above a B, 70% or above a C, and 60% or above a D.

All grade assignments are final—unless there was a mistake made in recording your semester grades or in computing your final grade. If all numbers are correctly recorded and computed, I will not discuss changing the resulting letter grades.

There are situations that may warrant regrading a particular assignment. For example, making addition errors in computing your score, not seeing an answer that you gave, or not understanding an answer that you gave. Requests for regrading of assignments must be made within one week after the graded work has been handed back.


Academic Integrity Policy: An Aggie does not lie, cheat, or steal or tolerate those who do. The Honor Council Rules and Procedures are available on the web

The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact Disability Services, in Cain Hall, Room B118, or call 845-1637. For additional information visit

Schedule and material

Tue, Aug 28Introductionlec01.pdf
Thu, Aug 30Software Lifecyclelec02.pdf
Tue, Sep 4Requirementslec03.pdf
Thu, Sep 6Requirements
Tue, Sep 11Configuration Managment (J. Freeman)lec_conf_management.pdf
Thu, Sep 13Configuration Managment (J. Freeman)
Tue, Sep 18Requirements, formallyOn Formalism in Specifications
Thu, Sep 20Capturing requirements, use cases, scenarios
Tue, Sep 25(Object-oriented) design, UMLlec04.pdf
Thu, Sep 27Guest lecture: Dr. StroustrupSE.pptx
Tue, Oct 2OO fundamentals; Design patternslec05.pdf
Thu, Oct 4Design PatternsExamples: visitor factory
Tue, Oct 9Design Patterns Continue
Thu, Oct 11Interfaces and Constraintslec06.pdf
Tue, Oct 16From models to implementationlec07.pdf
Thu, Oct 18API designlec08.pdf
Tue, Oct 23Midterm
Thu, Oct 25Testinglec09.pdf
Tue, Oct 30Testing
Thu, Nov 1Verificationlec10.pdf
Tue, Nov 6Verification
Thu, Nov 8Verification
Tue, Nov 13Verification
Thu, Nov 15Verificationreading: parnas.pdf
Tue, Nov 20Model checkinglec11.pdf
Thu, Nov 22No class: Thanksgiving
Tue, Nov 27Model checking
Thu, Nov 29Project presentations
Tue, Nov 4Project presentations
Tue, Dec 11Final exam, 1–3pm


An optional textbook:

  • Bruegge, Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java (3rd edition). Prentice Hall, 2010.

Other suitable software engineering books:

  • Ian Sommerville: Software Engineering (9th Edition). Addison-Wesley, 2011.
  • Roger Pressman: Software Engineering: A Practitioner's Approach, 6th edition. McGraw Hill, 2005. ISBN 0-07-285318-2.


Assignment 1Due 2012-10-04 Thu
Assignment 2Due 2012-10-18 Thu
Assignment 3 (answers)Due 2012-11-21 Wed

Final exam

The exam will be on December 11, Tuesday 1–3 pm.

All the material covered since the midterm should be studied for the exam. Even though we discussed the Dafny language, and used it in an assignment, it will not be necessary to remember Dafny syntax, or other such details of the language. Here are some additional materials on model checking.

Date: 2012-12-08 14:05:34 CST

Author: Jaakko Jarvi

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0