CS3141 Team Project Requirement

Team Working Space:

            After the teams are formed, the instructor will create a web viewable directory for each team. This area can be used as a common work space for the team to host document, source code, releases, etc. See this link for more details about the working space.  The specification of class project directory for each group

            The team can also use other working space, such as google code, google doc.

 

Project Management - Scrum

            All teams are requirement to learn to manage their project efficiently. In this semester, we will learn to use the Scrum method, which is easy for the student team to grasp quickly. The method has very light management overhead. It is very efficient for tracking team progress.

 

            You can use excel sheets to manage Scrum artifacts (product backlog, spring backlog and burndown chart).

                        Sample product backlog: SimpleProductBacklog.xls

Sample Sprint backlog: SimpleSprintBacklog.xls

 

 

            You are encouraged to use tools that support Scrum.

            ScrumWorks Basic is a free scrum tool developed by Danube.com. We used this tool in previous semesters.

                         Redmine work pretty well too. Some enterprises in Campus use it.

 

The disadvantage is that those tools typically need to run on a Web server and require a Mysql server as well.

You need to find a free server to use them or find the time to set up those tools by your team.

 

Requirement Specification

            The teams are required to do requirement analysis and write up requirement specification.

            In this class, students are required to describe most functional requirement with use cases. See how to write use cases here

 

          Requirement Templates:

            Requirement Specification template 1

 Template2 (based on IEEE standard 830-1993)

 

                       

Design

            Design is a must to do for any serious project. There are bad design and good design. People build up their design skills from knowledge and experience.

 

            All teams must use UML as your software development framework.

                        Refer UML resource page

 

            All teams are required to do design from different perspectives and different levels of abstraction with different models that are most appropriate for the project they are working on. This may includes:

·       Architecture design

·       Data persistent design

·       Interface design

·       CUI design

·       Network protocol design

·       Algorithm design

 

            The UML models that you may use:

 

               The design for a large team project is new to most students who come to this class. In this class, we will do a mix of forwarding engineering design and reverse engineering design.

 

               The team shall try their best to design their project, implement some parts if not all. The team can ask for instructor’s help anytime. The instructor may informally give verbal feedback to some team based on the instructor’s observation.

 

               Then the instructor will review design with the team and give the team specific suggestions. At this time, the team should have their major design in their head if not on paper.  So the purpose of this review is focusing on how to present designs.

 

               It is not the instructor’s responsibility to discover the design faults for the team. The instructor teaches the students how to use UML design models at the beginning of the semester. It is the team’s responsibility to go though the modeling process thoughtfully and answer the questions related to the specific model.

 

Implement          

Version Control   

All groups must use version control system to maintain all versions of their code and possible documentation. Failure to do so will result in the loss of points for your project.

 

You may use CVS, Subversion or other version control software. CVS and Subversion are both supported in the lab. You can access your team’s source repository in the working space easily in Eclipse anywhere via extssh.

            How to use CVS for class project

            CVS home page

 

You may also use google code.

 

Here is a file written by previous student about how to use CVS with Eclipse: Eclipse_in_the_Labs.pdf

Here is a link to teach you how to use subversion (SVN) with Eclipse: http://www.ibm.com/developerworks/opensource/library/os-ecl-subversion/

 

 

Programming Standard

Each group’s source codes must adhere to some stylistic guidelines. Each team will be asked to define your standard.

Here are some examples:

            Google’s C++ standard, click here

            Sun’s java code cenventions, click here

            Previous CS3141 coding Style, click here

  

 

Test

            Teams are encouraged to use unit test framework such as Junit to perform unit testing.

            Teams are required to create test cases for integration and system testing.

                        Test case template 1
                        Test case template 2

      All teams are required to use the Bugzilla to track bugs.

                        How to use Bugzilla

 

 

Release

            Teams are required to pack their software nicely. Jar file is convenient way to do this task.

                        How to use jar file


            The final project shall be installed on an instructor specified location for grading after each sprint.

 

Goal statements

            Each team shall have a clear goal at the beginning for the overall semester.

            The team shall then have goals for each period, scrum1, scrum2, and scrum3. Scrumworks supports the team to define its goals.

 

            Each individual shall have their own goals for the semester and each scrum. The individual’s goals shall not conflict with the team’s goal.

 

Meeting Template

            For a team project, team will have to meet regularly. Meeting techniques are important for team cooperation. Have a clear agenda 24 hours before the meeting is an effective way to make the meeting focused and productive. Also having meeting minutes ready for all team member review within a day is important as well – so the decision can be recorded, the action can be followed up, etc.

                        Meeting agenda template (MS Word format)

 

 

Individual Time Sheet

            The instructor also encourage student to record their individual work hours. The instructor will collect the timesheet at the end of the semester. The time that each student spends for the team project will be used as an effort indicator. The student’s score can be adjusted up to 2% based on the time he or she spent.

            Sample time sheet (OpenOffice Spreadsheet format)

 

Progress report

Each team is required to keep the product backlog updated, and update the sprint backlog daily, generate burn down chart automatically. The instructor my check on the team’s progress based on the sprint backlog and burn down chart anytime during the sprint.