Q: Is it true that this course takes the effort of 3-4 modules?
A: You will have to do no more than the allocated 20 hours/week workload
for a 8MC module such as CS3215. However, lack of good planning can result
in heavy workloads at times, especially, near deadlines.
Q: What if I take more than 12MC worth of other courses?
A: Try not to. If you had to do this due to unavoidable
circumstances, contribute at much as possible to the project. Especially,
try not to slow down the team by being "unavailable" for team meetings etc. Keep
in mind that your grade greatly depends on how much you contribute to the project.
Q: Will the project specification change during the project?
A: It might; then again, it might not :-) You should be ready for changes
to the spec at any point. However, we do not plan any drastic changes to
the spec. Minor changes (e.g., due to errors discovered in the spec) are a
definite possibility.
Q: Program analyzers are boring! Why can't we build a more
common place business application like a payroll, air line ticketing system, or
a web based application?
A: That's what CS3214 does :-) See here
for a comparison.
Q: Why don't we do a real project with a real customer (and may be
make some real money out of it)?
A: Tempting as it may sound at first, using a real project does not let
us optimize the limited time we have to achieve highest level of knowledge.
Using such real projects for a course is suitable for more SE-intensive
degree programs where students take 5-6 SE theory modules before they take the
project course. In CS3215, we use a simulated real project environment.
Q: Why C++? I already know Java; why can't I do it in Java?
A: C++ is more fundamental. Even if you know Java, you will still get to
learn another language and get some experience in the .NET technologies. If you
want to use the Java-like language C# for the project, you can take the module in Sem II of any year.
Q: How many tools we should use in the project?
A: As many as you want. Tools are supposed to improve your productivity.
If you feel that you want to be (or can be) more productive in some aspect of
the project, look for a tool that helps you in that aspect. Using tools has its
own reward.
Q: What if I want to use tools not recommended by the course?
A: Talk to your supervisor first. In fact, we encourage looking
for better, and additional, tools.
Q: Why do we use Visual Studio 2008 instead of Visual Studio
2005?
A: The reason is to do with licensing. Now you can get Visual
Studio 2008 from MySOC MSDN. It is best for all the students to migrate to one
latest version. However, note that often
in the industry you will be using earlier versions of a tool due to licensing
issues or stability issues.
Q: Can I use 3rd party libraries/tools in our product?
A: Check with the supervisor first. In general, such
libraries/tools should be public domain, should not require any installations or
servers, should be standalone, and should be free (or should have an evaluation
version that does not expire) .
Q: Can we use our own source code control (SCC) system
instead of Subservsion?
A: No. Like many software houses, we want the code to be in a
centrally controlled repository.
Q: Is it OK to skip unit testing for some parts of the code?
A: In theory, everything must be unit tested. But in practice, some
things are OK to be omitted from unit testing. e.g., trivially simple methods,
or code that are hard to isolate. If you have to write 50 extra LOC to unit test
a 3 LOC method, may be it's better to skip the unit test and verify the
correctness by manually stepping through the code or by getting another team
member to double check the code manually.
How much unit testing you do is finally up to you. A bug is easier to catch
using unit tests than using other forms of testing. So if is a bug slipped
through due to lack of unit testing, you might end up wasting more time tracking
them down later, or never catching them at all!
Q: Can you give us more information about the test cases that will be
used in final testing, so that we can optimize our product for final testing?
A: Your product should be targeted towards long-term day-to-day use by
PQL
programmers, not final testing.