COMP354 - fall 2005

From Dr. Joey Paquet Web Site
Jump to: navigation, search

Contents

Course Description

COMP 354 Software Engineering I (4 credits)

Prerequisite: COMP 352; ENCS 282. Principles of software development and maintenance. Software lifecycle models and deliverables: requirements analysis and specification, architectural and detailed design, implementation, verification and validation. People, product, and process issues: team dynamics, communication, presentations, reviews. Lectures: three hours per week. Laboratory: two hours per week. Tutorial: one hour per week. NOTE: Students who have received credit for COEN 431 may not take this course for credit.

Course Schedule and Contacts

component day time location instructor e-mail address
lecture E -T-J--- 11:45-13:00 CL-220 Paquet, J. paquet@cse.concordia.ca
office hours ---J—-- 15:00-16:00 EV-3-221 Paquet, J.
tutorial EA -T----- 13:15-14:05 CL-225 Vassev, E. i_vassev@cse.concordia.ca
laboratory EA-EI ---J--- 14:15-16:15 H-929 Vassev, E.
tutorial EF -T----- 13:15-14:05 CL-227 Wan, K. ky_wan@cse.concordia.ca
laboratory EF-EJ ---J--- 14:15-16:15 H-929 Wan, K.

Examinations Schedule

week date examination topics
week 6 oct 13 quiz #1
  • processes
  • requirements
week 13 dec 1 quiz #2
  • specifications
  • design
  • testing
  • maintenance

Homework and Project Assignments Schedule

due assignment available
week 4 sep 29 homework assignment #1 week 2 sep 13
week 9 nov 1 homework assignment #2 week 6 oct 11
week 11 nov 17 homework assignment #3 week 9 nov 1
week 2 sep 15 project proposal week 1 sep 8
week 5 oct 6 project deliverable #1 week 2 sep 13
week 9 nov 3 project deliverable #2 week 5 oct 4
week 15 dec 12 project deliverable #3 week 9 nov 1

Lecture Schedule and Material

wk date event topics material
week 1 sep 6
sep 8
  • handout: project description
week 2 sep 13
sep 15
  • due date: project proposal, team members
  • handout: project deliverable #1
  • handout: homework assignement #1
week 3 sep 20
sep 22
week 4 sep 27
sep 29
  • due date: homework assignement #1
week 5 oct 4
oct 6
  • due date: project deliverable #1
  • handout: project deliverable #2
  • handout: homework assignement #2
  • specifications
  • state transition diagrams
  • decision tables
  • the Z language
week 6 oct 11
oct 13
  • quiz #1
week 7 oct 18
oct 20
  • design
  • architectural design
  • conceptual design
  • module interfaces
  • detailed design
week 8 oct 25
oct 27
  • good design principles
  • testing
  • testing concepts
  • testing phases
week 9 nov 1
nov 3
  • due date: homework assignement #2
  • due date: project deliverable #2
  • handout: project deliverable #3
  • handout: homework assignment #3
  • unit testing
week 10 nov 8
nov 10
  • integration testing
  • system testing
week 11 nov 15
nov 17
  • due date: homework assignment #3
week 12 nov 22
nov 24
week 13 nov 29
dec 1
  • quiz #2
  • due date: project deliverable #3
  • project demonstration

Tutorial and Laboratory Schedule

week tutorial topic laboratory topic
week 1
  • project setup & information
  • formation of teams
  • process models
week 2
  • functional versus nonfunctional requirements
  • use case (requirements & specifications) modeling
week 3
  • discussion on homework assignment #1
  • use case modeling using Rose and Visio
week 4
  • discussion on project deliverable #1
  • graphical rendering in the project
  • Java/C++
week 5
  • material review for quiz #1
  • Java/C++
week 6
  • discussion on homework assignment #2
  • class (design) modeling
  • Java/C++ and patterns
week 7
  • discussion on project deliverable #2
  • class (design) modeling
  • Java/C++ and patterns
week 8
  • discussion on project deliverable #2
  • project support (Rose and Visio)
week 9
  • discussion on homework assignment #3
  • testing
  • project programming support
week 10
  • discussion of project deliverable #3
  • project programming support
week 11
  • material review for quiz #2
  • project testing support
week 12
  • discussion of project deliverable #3
  • testing
  • project testing support
week 13
  • general project support
  • general project support

Course Material

Project Description

You have to build a game that is an equivalent of the game "Conquest" [1], a clone of the popular board game "Risk". You have to extract all requirements by downloading and inspecting the free version of the game. All features of the game must be listed in your initial requirements document in deliverable 1. You also have to analyze these requirements by giving them relative importance and an evaluation of the difficulty of implementation. When setting up your project plan (also in deliverable #1), you have to specify in what order the requirements will be implemented, as well as restricting the scope of the project by eliminating some features if you find that some are too much time consuming or difficult to implement. However, there are some mandatory features that are to be implemented in all projects (some not being part of the original game) :

  1. The game must be playable in text mode, using windows with fields showing the relevant information of the game, as well as buttons and menus to control the game execution.
  2. The map must be customizable, i.e. one can define what countries are part of the map, give them names, and specify their neighbouring countries. For example, this could be done using a matrix. The engine of the game execution must be able to run a game with any valid map configuration without recompiling the game.
  3. A computer player must be available. It does not need to act intelligently, but must be able to take a turn without user interaction, meaning that the game can execute with no user interaction by using only computer players without human players.
  4. A save game feature (and the corresponding loag game counterpart) must be available.