Syllabus

SEG-2106 "Software Construction"

School of Information Technology and Engineering (SITE), University of Ottawa, Winter 2016

Calendar Description: General principles and techniques for disciplined low-level software design. BNF and basic theory of grammars and parsing. Use of parser generators. Basics of language and protocol design. Formal languages. State-transition and table-based software design. Formal methods for software construction. Techniques for handling concurrency and inter-process communication. Tools for model-driven construction. Introduction to Middleware. Hot-spot analysis and performance tuning. - Prerequisite: SEG-2105, CSI-2110

Professor: Gregor v. Bochmann , telephone: 562-5800 ext.: 6205, e-mail : bochmann@site.uottawa.ca , office: SITE (room 5082), office hours: Wednesdays from 14:00 to 15:00

Time table: Lectures : Tuesday 14:30 - 16:00 and Friday 16:00 - 17:30; TUT/LAB : (Group 1) Monday 17:30 - 20:30, (Group 2) Tuesday 19:00 - 22:00 (see also Course Timetable at UofO)

General themes: The general theme of the course is the construction of software by using high-level specification formalisms and corresponding CASE tools. More specifically, the main subjects covered are:

Learning objectives

The following list contains learning objectives for each chapter of the course. Each objective is preceeded by references to the "graduate attribute" to which they belong. These graduate attributes are explained in Section 3.1 of the CEAB Accreditation Criteria and Procedures (the attributes covered in this course are: (1) A knowledge base for engineering, (2) Problem analysis, (3) Investigation, (4) Design, (5) Use of engineering tools, (6) Individual and team work, and (7) Communication skills). In addition, at the end of each objective, there is an indication of the labs and assignments which are intended to help you attain the objective. The course includes 10 Lab sessions, including three "formal" labs for which a report should be prepared, and the students will have four assignments.

Section 1: Requirement engineering, structural and behavioral modeling using state machines

Section 2: Languages, grammars, and analyzers

Section 3: Concurrency: specification, verification, and implementation

Other leaning objectives

During the Lab sessions and for the assignments, the students will normally work in groups of two people. In this context, their work will address (to some extend) the following grauduate attributes:

Student evaluation

Textbooks (there is not one book covering all aspects of this course)

Class policies


Last update: January 12,  2016