left header image
right header image

Professor Hausi A. Müller PhD PEng FCAE
Department of Computer Science
Faculty of Engineering
University of Victoria

Final Marks Posted

Welcome to SENG 321
Spring 2016

Would you tell me please, which way I ought to go from here? That depends a good deal on where you want to get to, said the cat. I don't much care where, said Alice. Then it doesn't matter which way you go, said the cat.

Lewis Carroll, Alice in Wonderland

Course Description

SENG 321 combines a range of topics integral to the analysis of requirements, design, implementation, and testing of a medium-scale software system with the practical experience of implementing such a project as a member of a software engineering team. Introduces requirements engineering, specifications, software life cycle models and formal methods for requirements engineering.

Requirements engineering is a critical yet very difficult part of software development. Project success is ultimately measured against meeting the client requirements. This course is designed to address the issues of requirements engineering in software development projects. It provides the students with opportunities to learn and apply techniques for requirements elicitation, analysis and modelling, as well as risk management, formal specification, negotiation and decision making.

Project-based group work involves students in roles of client as well as system analyst/designer for two different software projects. For each project the designers, in collaboration with clients, define, specify and negotiate requirements, and validate the requirements through prototype design and presentations in class.

Learning Objectives

  • Understand the importance of Requirements Engineering

  • Understand the complexity of software-intensive systems and inherent difficulties of Requirements Engineering

  • Learn and apply the techniques of requirements elicitation, analysis, negotiation, modeling and validation, as well as feasibility studies, risk management and formal specification Uunderstand the role of iterative approaches for adequate requirements management

  • Learn and apply group communication and teamwork techniques

  • Learn and apply techniques for client-developer relationship management

  • Become familiar with different approaches to software process and in particular the Rational Unified Process



  • Requirements elicitation

  • Requirements analysis and modeling

  • Requirements and the development life cycle

  • Risk management

  • Feasibility studies

  • Verification and validation

  • Formal specification techniques

  • Prioritization, negotiation and decision making

  • Software evolution

  • Client-developer relationships

Marking Scheme

Graded work

Grade percentage


Group Project


Negotiation builds a team as well as a set of requirements.

Barry Boehm

Class participation, teamwork, and activity logs


Take full advantage of this opportunity to perfect your communication skills!

3 Quizzes 6% In labs to monitor course progress

Midterm Exam


Fri, Feb 26, 2016 in class

Final Exam


Sat, Apr 16 19:00-22:00
ECS 125





Prof. Hausi Müller
Computer Science
Associate Dean Research
Department of Computer Science
University of Victoria
Voice: 1-250-472-5719
Homepage: http://webhome.cs.uvic.ca/~hausi/




Lecture Sections A01, A02
TWF 3:30-4:30 pm
MAC D288

Lab Sections
B01, B02
TR 4:30-5:50
ELW B220/B215




TR 4:30-5:50
ELW B220/B215


Lab Instructors


Prashanti Angara
Harshit Jain




Prashanti Angara
Harshit Jain