Software Engineering



Course Projects


  1. Purpose and Method
  2. Team Work and Project Management
  3. Individual Contributions Breakdown
  4. Project Proposals
  5. Project Resources and Communications
  6. Report Format
  7. Project Demos
  8. Project Grading Policy

Project deliverables
Iteration #1 Iteration #2
Proposal Report #1 Report #2 Demo #1 Report #3 Demo #2 eArchive

1.   Purpose and Method

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.

2.   Team Work and Project Management

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 rejected—every 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:

  1. Team member names and email addresses
  2. Your project web site URL (one web site per team)
  3. Project proposal (see below)

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:

Saying that "nobody asked me to do this or that, or, I did everything that I was asked to do" is an unacceptable excuse. Each team member should be proactive and not wait passively to be assigned the responsibilities. Do not ask others what should be done; rather, take initiative and suggest what should be done to make your project successfull. Take every opportunity to redistribute and/or rotate the responsibilities, make your personal suggestions be heard! Many times defining the problem and determining what needs to be done is more difficult than actually doing it. Hence, problem defining and task assignment must be contributed to by all team members, rather than by the team leader alone.

What is the role of a team leader?

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.

What if your team is not functioning well?

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.

Additional information on project management

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 grapefruit—Paul Glen says that when putting together a team, skills are one thing, but it also helps to evaluate people’s personalities in terms of how ...

3.   Individual Contributions Breakdown

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:

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.

4.   Project Proposals

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.

5.   Project Resources and Communications

Departmental 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.

Project Web Site and Web Log (Blog)

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

6.   Report Format

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:

  1. Report #1
  2. Report #2
  3. Report #3

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:

You can search the web and find some other tool as well.

Reading additional materials will likely improve the quality of your report. Additional online readings material is available here.

7.   Project Demos

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.

8.   Project Grading Policy

Grading is market-based—whoever 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:

  1. Each deliverable is graded as a whole and the grade is assigned, relative to the quality of deliverables submitted by other teams.
  2. Next, the total grade is divided among the individual team members, based on the reported contributions breakdown and the judged quality of these contributions.
Hence, it is quite possible that members of the same team receive different grades.

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
Sun Dec 12 19:19:29 EST 2004