COSC 4506/ITEC 3506 - Software Engineering

Winter, 2011

INSTRUCTOR
Dr. Simon Xu , Room NW206C, 949-2301, ext. 4346, email:

TIME: Monday, 7:00-10:00 p.m.

PLACE: WW101

SOURCE MATERIAL

  • Required textbook:Stephen R. Schach: Object Oriented and Classical Software Engineering, 7th Edition, McGraw-Hill, 2007, ISBN: 0-07-319126-4.
  • Recommended Reference: Bernd Oestereich, Developing Software with UML: Object-Oriented Analysis and Design in Practice, Addison Wesley, 1999, ISBN: 0-201-39826-5.
  • Course Website: or or

PREREQUISITES

Completion of second year core programme in Computer Science or permission of the Department.

CALENDAR DESCRIPTION

Methodologies for design, implementation and maintenance of very large programs.Use and development of software.Support systems.

OBJECTIVE

Software engineering is concerned with the theories, methods, and tools that are needed to develop complex, large-scale software. It encompasses a wide range of topics, including requirements and specification, software design, implementation, validation and verification, software maintenance, and the management of the software process. A single course is clearly incapable of covering in depth all these topics. The objective of this course is to provide you with a broad understanding of all phases in the software life-cycle, and to introduce you to specific concepts that you have not covered systematically yet and that are increasingly being viewed as essential for engineering large software systems.

LEARNING OUTCOMES

At the end of the course a student is expected to be able to:

  • Explain well‐known software development process models
  • Understand and be fluent in the use of software engineering terminology and nomenclature
  • Intelligently communicate with most members in a software development organization (management, analysts, architects, developers)
  • Create and use planning, requirements analysis, domain analysis and design artifacts and carry them into code (UML and OO Specification and Design techniques)
  • Work as a team and schedule the task to achieve the goals
  • Take on the role of systems analyst in a software development organization
  • Distinguish between different types and levels of testing (for instance, unit, integration, systems, and acceptance) for medium‐size software products and apply them.
  • Document all phases of the software development processes
  • Have the necessary tools to become a software development project manager

PROGRAMMING ENVIRONMENT: Programming is done in Java or C++, used within Windows operating system. All programming, documentation, and project demos are done in this environment and it is the responsibility of students to acquire accounts and all necessary skills.

ASSIGNMENT: There is one individual programming assignment. You will be asked to implement a simple application using the test-driven approach. The assignment is worth 7 marks.

PROJECT

There will be one project in this course. You will require to implement a small application from scratch, following the software development lifecycle using C++ or Java.

Project will be marked based on the program, documentation and presentation. There are one progress presentation and one final demonstration. Late projects are graded on 50% basis, and projects late more than a week are graded 0%. All code must execute correctly and follow the conventions and methodology explained in the class. Total mark for the project is 30 marks.

EXAMINATIONS

There are one mid-term test, scheduled at the middle of February in class, which will be worth 20 marks. This midterm test will cover topics presented in the all lectures so far. There are two spot quizzes, each of which is worth 2.5%. No making up quiz will be given.

The final examination for this course is scheduled for the 14th week, and is worth 38 marks for the course. The final examination covers topics presented across the whole of the course.

If you have a compelling and documented reason for not being able to attend the midterm and final exam, you must make the alternative arrangements before the examination.

GRADING

Credit towards the semester grade will be allocated to each of the components as indicated in the following table.

Assignment / 7%
Project / 30%
Spot quizzes (2.5X2) / 5%
Midterm / 20%
Final Examination / 38%
T O T A L / 100%

RULES OF CONDUCT

Cheating of any kind will not be tolerated in this course. Please see the general calendar for more information. Any occurrence of plagiarism will be handled by the Department of Computer Science.

PROPOSED SCHEDULE

WEEK / DATE (Monday of each week) / CHAPTER / Project
1 / Jan 10 / 1
2 / 17 / 2, , 3, 4 / Form groups
3 / 24 / 10 / Requirement & Specification
4 / 31 / 11, 16 / More Requirement & Specification
5 / Feb 7 / 12, 7 / Design & Initial Testing
6 / 14 / 13, 14 / More design
7 / 21 / Study Week / Coding
8 / 28 / Midterm / Progress Presentation
9 / March 7 / 8 / Coding,
10 / March 14 / 14 / More coding
11 / 21 / 15 / More coding
12 / 28 / Project testing
13 / April 4 / Project Delivery and Project Presentation
14 / April 11-27 / Final Exam Period