TME3413
Software
Engineering Lab
Team work &
project
management
Topics
Introduction
Method
Team Work and
Project Management
Project Resources and
Communications
Project Web Site and
Web Log (Blog)
Useful
Introduction (cont…)
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 teamwork, which is
unavoidable for large-scale software development.
Teamwork has positive and negative aspects, and a
familiarizing yourself with both helps you get ready for
your future workplace.
Introduction
There
are many challenges to good
teamwork:
time coordination;
building on each others strengths
compensating for weaknesses;
reconciling different working styles, preferences,
and levels of motivation; etc.
Method (cont…)
This project consists of two phases of a
software product.
The first cycle is exploratory and represents the
first attempt at developing the proposed
software product.
The deliverables for the first phase are reports 1
and demo 1.
After these, the instructors will provide
feedback and the students should reconsider
and possibly revise the project goals before
moving on to the second phase.
Method
Team Work and Project Management
Each team consists of 6v- 7 students
All teams work on a different projects.
Team work is required since team work is an
integral part of small and large-scale software
development.
Grading is competitive, your own grade may be
affected because you have to share the grade
scores with more teammates.
Team Work and Project Management
Team meetings should be structured to involve:
Discussion of tasks that need to be done—come
up with specific action items
A period of time to assign responsibilities, draft the
parts each person is responsible for, and ask
questions to be sure you all are on the correct
path
Team Work and Project Management
Tools to help organize the teamwork:
Doodle—a tool for time management and
meeting scheduling.
GroupMe—a group messaging service that lets
you stay in touch with groups of people via
mobile phones.
Team Work and Project Management
You will soon realize that teamwork is difficult and has negative
aspects. Here are some suggestions about teamwork:
Choose the team leader to serve as a focal point. Discuss individual skills
and strengths (algorithm design, coding, report writing, etc.)
Set the meeting agenda and time limits. Students are encouraged to confer
frequently and work together on solving the problem
Decide how will the team communicate, e.g., email, Trello, Twitter
, Facebook, blog, instant messenger (wassup, wechat etc.) ...
Make every effort to ensure that all team members feel comfortable about
each others’ contributions. It is a good idea to be collegial and professional
in your communications and avoid conflicts.
If in the days before a project deadline you are prevented (travel, illness, ...)
from attending the team meetings, immediately notify all your team
members and try to contribute to the best of your abilities.
If for whatever reason your contribution falls short of that of other team
members, you should do extra work in the subsequent deliverable(s).
What if your team is not functioning
well?
If you notice that your team does not function
well or the team and this could negatively
impact your project performance (and your
final grade), 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 instructors,
the sooner the better.
*Complaints about poor team
functioning expressed at the end
of semester will be ignored.
Project Resources and Communications
Online Tools for Software Development (cont..)
1. A Microsoft site https://imagine.microsoft.com
gives software to students for free. For example,
Visual Studio Community 2015 , Microsoft Office 365
, are all completely free.
Project Resources and Communications
Online Tools for Software Development (cont…)
2. Java Programming
intro to 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.
Project Resources and Communications
Online Tools for Software Development (cont…)
3. PHP Scripting
PHP friend or XAMPP - Apache
distribution containing MySQL, PHP
and Perl.
Wampserver - create web applications with
Apache2, PHP and a MySQL database
Project Resources and Communications
Online Tools for Software Development (cont…)
4. Source control software
Bitbucket (Wikipedia article) allows you to host,
manage, and share Git (Wikipedia article)
and Mercurial(Wikipedia article) repositories in the
cloud.
Example of free file hosting (you will need this for
your electronic project archive)
GitHub, Inc.
Dropbox
MediaFire
Secure Systems Box
Google code
Source Forge
Source Control Software?
https://www.youtube.com/watch?v=K0mgc3efx-A
Project Resources and Communications
Online Tools for Software Development (cont…)
5. UML Modeling and diagramming tool
StarUML http://staruml.sourceforge.net/en/
see also StarUML @ Wikipedia
Open-source UML modeling tool supports most of the diagram types specified in
UML 2.0
WhiteStarUML http://sourceforge.net/projects/whitestaruml/
a fork of StarUML providing modern continuation of the project using up-to-
date development tools and libraries.
UMLet http://www.umlet.com/
Open-source UML tool; runs stand-alone or as an Eclipse plug-in on Windows, OS
X, and Linux
Visual Paradigm for UML (Community Edition)
http://www.visual-paradigm.com/product/vpuml/editions/community.jsp
The Community Edition is free for non-commercial use; It puts a “Community
Edition” watermark on your diagrams; Runs on Windows XP/Vista/7, Linux, Mac OS
X, etc.
Netbeans UML Plug-in http://www.netbeans.org/features/uml/
Does not support all UML diagram types, but supports forward and reverse
engineering
Microsoft Visio and open-source Dia are diagramming tools with a library of
UML shapes that may also be used for drawing UML diagrams.
ArgoUML http://argouml.tigris.org/
see also ArgoUML @ Wikipedia
Project Web Site and Web Log (Blog)
Each team should maintain a single web site per team.
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.
Examples of free project or website hosting:
Google Project Hosting
Google Website Hosting
WordPress.com
Yola - a free website builder
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.
Useful books (cont…)
Tips to Succeed in Software
Engineering Student Projects
Author: Damith C. Rajapakse,
National University of Singapore
Publication Date: 27 June 2008.
Useful books
Rebecca Blood, The Weblog
Handbook: Practical Advice on
Creating and Maintaining Your Blog,
Perseus Publishing, 2002.
Online at:
http://www.rebeccablood.net/han
dbook/