CS 410/560 Software Engineering
Prof: Lin Jensen
Office: Johnson 115.
Office Hours:
see cs.ubishops.ca/ljensen
, or by
appointment
Class meets Wednesday & Friday at 10:00 in N-312
e-Mail:
Be brief. Messages over 40KB will be deleted unread
phone extension: 2361
There are many good textbooks on this subject. Some are more
readable than others.
A recommended Textbook: Software Engineering, Principles and
Practice, Hans van Vliet (ISBN 978-0-470-03146-9)
I plan to follow chapters 1-3, 9-14 of this book in the lectures.
On reserve at the Library -- recommended books, really good
reading:
Good software is difficult to build, it doesn't just happen. This
course covers the phases of the software life cycle: Requirements,
Specification (analysis), Design, Implementation, Integration, and
Maintenance. The need for testing is present throughout.
Methodologies for succeeding with each phase will be presented.
Methods of development range from the classic "Waterfall" to
Extreme Programming.
"If it's not documented, it's not done" -- Parnas.
Documentation is most useful if it is produced early and
throughout the project. It is absolutely vital to maintenance of
successful software as it "ages."
Individual assignments | 20% |
Tests | 20% |
Project | 50% |
Class participation |
10% |
Normally, all participants in a project will receive the group's
mark. This mark will be based upon the process and final
documentation for each phase, and the adequacy of the user
documentation (manual or on-line help), in equal proportions. The
product should work and be testable by me on the basis of the user
documentation, without "coaching" from the developers.
There will be no final exam, and hence no supplemental exam, in this course.
A large part of this course will consist of working on a large group project. Groups will ideally consist of 3 or 4 students. You may form your own groups and propose a project For example, it could be a maze or simple game. I will assign one to you if necessary.
As the emphasis in on process, choice of language(s) for
implementation is up to the group. Java or C++, or possibly
Python, would seem to be reasonable implementation languages in
the Bishop's context.
During the first 2 weeks, we will form groups and will agree on the initial requirements for each project.
This question is a subject for discussion. One suggestion (by Van
Vliet) follows. In the recent past, groups have chosen projucts so
unique and comples, that they took the whole term, and we ended
with a public presentation. In this alternate model, periodical
reviews were held, with some member of each group reviewing the
progress of some other group.