| Project deliverables | ||||||
|---|---|---|---|---|---|---|
| Iteration #1 | Iteration #2 | |||||
| Proposal | Report #1 | Report #2 | Demo #1 | Report #3 | Demo #2 | eArchive |
The purpose of the course project is to provide the students with the knowledge of software engineering methodology and the skills to apply it. The particular project is not the goal in itself; rather, it serves as a vehicle to apply your knowledge and to develop the skills.
Projects also introduce students to team work, which is a must for large-scale software development. It also emerges as a key methodology for any- and every-scale software development, something called extreme programming. The world in the information age is such that people are expected to work together for mutual benefit and toward a shared goal. The challenge is to make possible group efforts that discern contributions of each individual.
The project consists of two iterations, both focused around the same software product. The first iteration is exploratory and represents the first attempt at developing the proposed software product. The deliverables for the first iteration are reports #1 and #2 and demo #1. After these, the instructor/TA will provide feedback and the students should reconsider and possibly revise the project goals before going on to the second iteration. Keep in mind that it's perfectly acceptable to modify your objective in the middle of the semester, once you learn more about the project and have better understanding of what you can accomplish within the semester timeframe. (Of course, you cannot switch to a completely different project in the middle of the semester.) This is why we have two (2) iterations, so that in the second iteration you can perform the necessary adjustments, based on what you learned in the first iteration. The deliverables for the second iteration are report #3 and demo #2.
Each team consists of 4 to 6 students. All students in a team work on the same project. Team work is required since team work is an integral part of large-scale software development. Requests for working alone or with a smaller team will be rejectedevery team must have at least four (4) members.
You should form a team by the specified date and notify by email the TA and the instructor about the following:
All team members must take part in all project activities, although responsibilities may be divided so that different members take lead in different activities. But, no activity should be done exclusively by a single person. While the volume of work of each group member on each project component may not be equal, their contribution to the overall project should equal out. Here are some suggestions (none of this is required!) about team work:
The team meetings should be structured to involve:
First, keep in mind that having a team leader is optional. You should elect the team leader only if you believe this would facilitate your group work. Alternatively, you can appoint individuals to coordinate meetings, deadlines, and track project progress, and rotate these roles among the team members.
The role of a team leader should not be misunderstood. The team leader is expected to provide organizational and logistical support, that is, to organize team meetings and keep track about work progress. The team leader is not expected to set the objectives, partition the tasks, and devise solution strategies. These responisbilities must be shared equitably by all team members.
It is a good idea to select the team leader based on his or her leadership, organizational, and social skills, rather than their technical skills and knowledge. Past experience has shown that people with poor organizational/social skills turn out to be poor leaders and their teams end up being disfunctional, regardless of their technical knowledge.
There are neither benefits nor responsibilities for the
team leader. The leadership is a voluntary responsibility, just to
facilitate the team work: help organize the meetings and remind the
team members about commitments and deadlines. The team leader will
not receive any rewards (e.g., higher grade) for serving in
this capacity. The leader is also not accountable for
failing to lead and cannot be blamed for the lack of
communication skills or general lack of success of the team's project.
For example, the leader has no such responsibilities as "knowing what
needs to be done", assigning work loads (fairly or otherwise), or
distributing the responsibilities. This must be agreed upon by
consensus. Most importantly, each team member must be
proactive, rather than waiting to be assigned the duties by the
team leader or anybody else.
Remember, All team members are
equally responsible for all aspects of the
project.
If you notice that your team does not function well or the team
leader tries to misuse his or her role, and this could negatively
impact your project performance, you should make every effort to
discuss this with other team members. If the problematic
team members (including the team leader) refuse to cooperate, you
should discuss your concerns with the instructor, the sooner the
better.
Complaints about poor team
functioning expressed at the end of semester will be
ignored.
TechRepublic: Download this project status report template, created by project management guru Tom Mochal, to effectively communicate project status to stakeholders and keep everyone on the same page: Project status report template by Tom Mochal; July 27, 2005.
Project Management Methodologies, by Jason Charvat, published by Wiley, NJ, 2003. (A book review by R. Max Wideman)
Computerworld: Team-building with tofu and grapefruitPaul Glen says that when putting together a team, skills are one thing, but it also helps to evaluate peoples personalities in terms of how ...
Many students find team work difficult due to different personal interests and working habits. Therefore, each student should keep track of his or her contributions to the project. The exact breakdown of individual contributions must be provided for every project deliverable, so that individual grades can be fairly assigned.
The breakdown of individual contributions should be submitted:
Either of these options is acceptable:
Each student should provide an itemized list of his
or her own contributions to the components of the particular
deliverable, such as:
. requirements specification (use cases and non-functional requirements),
. software design (whole system or list specific modules),
. coding (whole system or list specific modules),
. debugging (whole system or list specific modules),
. report preparation (whole report or list specific sections/diagrams),
. Other: any other relevant contribution.
If several students contributed to a particular component, quantify, as
a percentage, each student's contribution to this component.
Provide also a short description of your own contribution.
Team members who are not listed in the joint breakdown or do not email their contribution list will be considered as not contributed to the deliverable in question and will be assigned zero credit for this deliverable.
Please keep in mind that you must inform us exactly of who did
what if you expect us to assign the grades fairly.
There are seven project deliverables, so we need
seven (7) contribution breakdowns from you.
Each team must subit a written proposal for their project. See here for more on Project Proposals.
It does not really matter if the project was done before or it is being done by another team as long as you will not copy their designs and/or the code. If you will come up with an original design and implement your own code, it is perfectly fine that you develop a product somebody else did earlier or is doing now.
NOTE: Unfortunately, the department is unable to provide resources
for special project needs. Try to select the project and
implementation technology that is generally available, since the
logistics of project development and demonstration are entirely your
responsibility.
See the next section about the resources.
Due to the limited manpower, the ECE department's system administrators cannot support many different software platforms and database management systems. They'd be happy to set up for you a database account on a MySQL database server. Also, they can support JSP and PHP on the Apache Tomcat web server (Tomcat tutorial). In summary:
You can use other technologies if you like, but you are on your own. For example, you may wish to check PostgreSQL, claimed to be the world's most advanced open source database. Check also PostgreSQL at Wikipedia, the free encyclopedia.
You can inquire about other technologies, we'll try to help,
but no promisses can be made.
Check useful free
software available online.
Check also Eclipse, an
IDE for Java, C++, C, etc. programming ◤
CVS, open source
version control ◥ ANT, a Java build tool
◣ JUnit, a
unit testing environment which is
accessible in
Eclipse ◢ JCover, a
test coverage tool for Java.
NOTE: You should also check the resources available in D-110,
Engineering Building D-Wing.
If your project requires creating a dynamic website (using JSP or PHP), ECE sys admins will create a group account for your team. Each team member will be able to add/change files on the account. Having a group account avoids the need to use your personal account, in which case you would have to give out your password to the entire group. For this, ECE sys admins will need everyone's email. The group account passwords will be emailed out to the students in each group.
Each team should maintain a single web site per team,
listing the team members and contact information. The purpose of this
website is for the instructors to be able to track the project
progress. All project material (progress reports, related web sites,
etc.) should be posted on this web site. Important announcements
should be posted as well.
You may wish to host this website on the group account that will be
created for you by ECE sys admins (as described above), since then all
team members can easily contribute to this website.
The team should also maintain their blog (an online journal a freeform mix of news items, commentaries, and whatever else comes to mind), describing the project-related activities. You can get a free blog hosting on many sites on the Web. The blog should be linked from the project's website.
Blogging Tools:
Free Downloads | Blogging Tools Aclantis.co.uk - Software download ...
Check also
Google Category: Computers > Internet > On the Web > Weblogs > Tools
A good book about blogging is
Rebecca Blood, The Weblog Handbook: Practical Advice on Creating
and Maintaining Your Blog, Perseus Publishing, 2002. Online at:
http://www.rebeccablood.net/handbook/
2009 project: Educational Networking Tool for College Students
There are a total of three reports required for the semester. For all projects, the reports should be submitted by the whole team (one report per team) and the report will be graded as a whole.
Every report must have a cover page containing:
. the course title,
. group number,
. project title,
. URL of the project's website
. submission date, and
. all
team-member names.
Negative points will be assigned to reports
missing- or having an incomplete cover page.
The second page of each report must detail the breakdown
of individual contributions of each team member to the project
(use more pages if the breakdown does not fit in a single page).
Each student should provide an itemized list of his or her
own contributions to the components of the report, such as:
. requirements specification (use cases and non-functional requirements),
. software design (whole system or list specific modules),
. coding (whole system or list specific modules),
. debugging (whole system or list specific modules),
. report preparation (whole report or list specific sections/diagrams),
. Other: any other relevant contribution.
If several students contributed to a particular component, quantify, as
a percentage, each student's contribution this component.
If all members of the team feel that everyone contributed equally, you
can just write "All team members contributed equally" instead
of a detailed breakdown.
The reports missing- or having an incomplete contributions breakdown
page will be returned for revision before grading.
The rest of the report must follow the detailed descriptions given here:
Reports should be prepared using a word processor and printed on a (preferably) laser printer. Handwritten reports or reports which contain handwritten material (e.g., figures, tables, etc.) will not be accepted. It is easier for us if you turn in your documents electronically in PDF format. Here is a PDF writer you can use from Windows. Macs automatically convert postscript to PDF by clicking on the file icon. There are UNIX utilities that convert postscript to PDF for Linux users; make sure you include all fonts in the created PDF.
Students are highly encouraged to use a software tool to prepare the UML diagrams for the reports. Any tool that supports creating UML diagrams is acceptable. Here are some options:
http://www.omondo.com/ (Academic License available
for free)http://www.eclipse.org/http://argouml.tigris.org/
http://www.rational.com/tryit/index.jsp
http://www.microgold.com/
Reading additional materials will likely improve the quality of your report. Additional online readings material is available here.
The purpose of project demos is to complement the written project reports. Keep in mind that the purpose of the course project is to provide you with the knowledge of software engineering methodology and the skills to apply it. The particular project is not the goal in itself; rather, it serves as a vehicle to apply your knowledge and to develop the skills. Thus, the demo presentation (as well as the written reports) should demonstrate your understanding of the software development process, rather than just give a dull description of the current status of your project. See more on the demo format here.
Each team will give two demo presentations, each lasting about 15 min. The demos will take place in EIT Lab (D-110). If you're using your own laptop/notebook to project the slides and run your software, please ensure that the video connector is compatible with the cables in the lab before the actual demo.
Grading is market-basedwhoever offers the most-impressive product receives the highest grade. Which means that, if you receive a grade you aren't happy with, it's not necessarily that you did bad work; rather, it's that others did better. The grades for the other projects are scaled relatively to the best one, which itself scores 100 %. Finally, the normal distribution curve is formed.
The grading policy for individual deliverables will be posted
in the respective description of that deliverable. The specific
requirements to be met will be listed.
The reports will be graded based upon the technical content and the
clarity of the exposition.
However, it is not
enough to meet all the listed requirements to receive the maximum
grade. For example, having a perfect report for a trivial project will
result in a very low overall grade. Thus, the overall quality and
functionality of the project is the key scaling factor for all other
aspects of the grade.
Each student must be aware that a major part of his or her final grade depends on the team project. The failure to cooperate with other team members and invest equitable amount of effort can lead to undesirable outcomes. To help us assign the grades fairly, you are required to exactly specify the individual contributions to the project (as described above).
Grading the project-related deliverables works as follows:
Late reports will be levied a late penalty of 10% per day, up to 3 days late. After that, no credit will be given, unless more than 40 % of team members (e.g., at least 3 out of 5) provide a written excuse from a physician. Since the deadlines are known well ahead, there will be no extensions for any of the deadlines. Please don't bother asking.
Contact the instructor immediately should you have any questions
or concerns about the grading policy.
BACK TO:
Ivan Marsic