Title: CMPT 275 Software Engineering
1CMPT 275Software Engineering
- Course Information
- FALL 2008
2Best Sources of Information
- Extensive information about course content and
expectations for successful course completion can
be found - By attending lectures
- By reading the textbook and other suggested
readings - By referring to the information and resources
listed on the CMPT 275 website at - http//www.cs.sfu.ca/CC/275/jregan/
3How is the course graded?
- Midterm (October 20) 15
- Project 50
- Final (December 9) 35
- To receive a grade of C- or above you must have a
passing grade on the midterm and the final. - A passing grade is defined as
- Midterm 0.15 Final 0.35 gt 0.50
4How is the project graded?
- Deliverable 1 - Planning 3
- Client meeting 2
- Deliverable 2 - Requirements 4
- Client Requirements Review 2
- Deliverable 3 - Requirements 5
- Deliverable 4 User Manual 5
- Deliverable 5 - Design 9
- Deliverable 6 Implementation plan 2
- Team presentation 3
- Deliverable 7 Final project 7
- User Acceptance Test 8
5Out of class client Meetings
- The client meeting, the client requirement
review meeting and the user acceptance test are
out of class meetings - All team members must attend these meeting
- Any member missing one of these meeting will
receive a grade of 0 for that meeting - These meetings will be scheduled early in the
term (more later today) according to the
timetables you provide to the instructor. Find
links to schedules for these meetings at
http//www.cs.sfu.ca/CC/275/jregan/assign.html
6(No Transcript)
7Team presentation
- The team presentation is an in class presentation
- Maximum 15 minutes
- About testing and planning not the finished
project - All team members must participate (non
participation will result in a grade of 0 for the
student who does not participate)
8What are deliverables
- Each of the Deliverables is a series of tasks
(an assignment) - Each group demonstrates their understanding of
the software engineering methods learned in class
by working through the tasks within the related
deliverable - Different phases or stages of the project are
parts of different deliverables
9Deliverable expectations
- Detailed descriptions of each deliverable are
already available on the course website
http//www.cs.sfu.ca/CC/275/jregan/assign.html - Due dates for each deliverable are also given on
this page - Each detailed description includes a summary of
the expected content and an indication of how
marks will be distributed - Except under exceptional conditions all team
members will receive the same grade
10Deliverable due dates
11Example Deliverable description (1)
12Example Deliverable Description (2)
13Questions?
- There will always be an opportunity to ask
questions at the beginning of each lecture - If something is not clear to you during a
lecture, ask about it immediately - If you need more individual interaction come to
the instructors office hours or the TA's office
hours to discuss points that are not clear - Email a question to the instructor or TA.
14Questions?
- Instructor and TA office hours and contact
information is found at http//www.cs.sfu.ca/CC/27
5/jregan/ - Email instructions at
- http//www.cs.sfu.ca/CC/275/jregan/emails.html/
15Emails
16Contact Information
17Instructors Schedule
18Preparing for lectures
- A course overview and approximate schedule is
given at - http//www.cs.sfu.ca/CC/275/jregan/notes.html
- Read the suggested readings for the lecture and
the posted lecture notes before class. - Think of any questions that may help you to
clarify previous material at the start of the
class, or to clarify new material during class
19Readings and lecture notes
20Other important information
- There are general expectations for the
preparation of deliverables. These can be found
at - http//www.cs.sfu.ca/CC/275/jregan/delivprep.html
21Academic Dishonesty
- Any work submitted by your group must be the
original work prepared by that group - Any information, code, etc. that is not original
must have its source cited - Failure to follow these simple rules will result
in penalties appropriate to the seriousness of
the offence http//www.cs.sfu.ca/CC/275/jregan/Ac
adHon.html - SFU Academic Honesty policies can be found at
http//www.sfu.ca/policies/teaching/t10-02.htm - http//www.sfu.ca/policies/teaching/t10-01.htm
22CMPT 275Software Engineering
- Forming Teams
- Basic Project information
23Material - 1
- Software Engineering techniques
- How to organize and manage a development project
- How to work in teams
- Software life cycle
24Material - 2
- Design and documentation techniques used at each
stage of software development - Project Planning
- Requirements gathering, specification, analysis
- Design, High level and low level
- Implementation
- Testing
- Maintenance
25Material - 3
- An introduction to
- Software project management
- Quality Assurance
- Configuration management
26To be discussed today
- What is your term project?
- Team Formation
- Management Roles
- Software Development Leadership Roles
- Team Communication
- Weekly team meetings
- Working in Teams
27Starting your project
- Project description is posted at
http//www.cs.sfu.ca/CC/275/jregan/Project.html - The project description has been written from a
clients perspective. - Outlines the functionality the client needs to
accomplish her task - Does not describe how to do the project
- Keep in mind that the initial project description
is often incomplete or even inconsistent.
28Project client constraints
- Platform -gt Windows
- Language -gt Java
- GUI -gt Java SWING (or AWT)
- Database
- MS SQL or
- custom data storage solution
29Project Team Formation
- Each project team will have 5 or 6 members
- Today you will choose partners
- Each pair or unpaired single student will send
one email to the instructor with the following
information - student names (as they appear in goSFU)
- student numbers and email addresses
- List of courses being taken by each student
30Timeline Team Formation
- Each pair or single student should send the
instructor their email by 430 PM Thursday
September 4 - If I do not receive an email from you by this
time I will assign you to a group. - You will be informed of the members of your group
by email before Thursday September 4 at 930 pm. - Group lists will also be posted in class on
Friday September 5
31Management Roles - 1
- Project Progress manager
- Keeping track of progress of projectby updating
the project schedule - Caucus manager
- Set up and maintain Caucus
- External Communications manager
- Liaison between your team and client/instructor
32Management Roles - 2
- Configuration manager
- Create document skeleton format layout, font,
etc. - Setup/maintain the software version control and
project development environment - Internal Communication manager
- Setup and maintain any communications tools used
by the team (emails, chats ) - Ensure that minutes and agendas are posted to
Caucus in a timely manner
33The Phase Leader Role
- The phase leader is responsible for
- Collecting the contributions of each team member
during a particular phase - Assessing when contributions are not complete or
not consistent with agreed upon standards,
designs, or expectations - Monitoring progress on contributions and
requesting or assigning additional tasks or
revisions to contributions when necessary - Integrating contributions into a coherent
deliverable
34Team member's responsibilities
- Each team member must
- Take 1 management role
- If your team has 6 members the member with no
management role must be phase leader for more
than one phase - Be phase leader for at least one phase of the
software development process. - Take part in all phases of the project
- Work on all aspects of the project
(documentation, coding, design )
35First team meeting
- The agenda for the first team meeting will be
distributed to you at the beginning of Friday's
class. You can see it now at - http//www.cs.sfu.ca/CC/275/jregan/Team_Meeting_1
_Agenda.html - Your first team meeting will be held in class at
the end of Friday's class. Be sure to be in class
on Friday so your schedule will be available when
out of class group meetings with the instructor
are scheduled
36Tools for good Communication
- Using your Caucus Site effectively
- a "group email" for your group only
- Weekly meetings
- Frequent discussions with your teammates
- The help mailing list
- Reaches the TA's and the instructor
cmpt-275-d1-help_at_sfu.ca
37Caucus
- Uses for your caucus Site
- Posting of contributions to deliverables,
agendas, minutes etc - Forum for online discussion of project tasks
- Ease information sharing amongst the team members
- TA and instructor will post comments about
meetings (client meeting, client requirements
review, UAT) and your marked deliverables to your
caucus site. - TA and instructor must have write access
38Caucus
- Additional uses for your caucus Site
- Your Caucus site documents your progress.
- Make sure you post all your own contributions to
deliverables on the caucus site - Make sure you agree with what is posted in the
minutes, or document (post) your disagreement and
the reason for it on Caucus - Contents of your Caucus site may be used in
dispute resolution between team members
39Weekly Team Meetings
- Your team must meet at least once a week
- Agenda must be created for each meeting
- Minutes must be taken for each meeting
- Agenda and minutes of each meeting must be posted
on your Caucus site - For each meeting you will need a chair and a
minutes taker
40Meeting roles
- Chair or Facilitator
- Prepare and distribute agenda
- Keep the meeting on topic and on time
- Make sure each team member participates
- Note taker
- Record attendance and the outcomes of discussions
on each item in the agenda - Distribute meeting summary as soon after the
meeting as possible
41Weekly Team Meetings Term Project
- Chair person and minute taker roles rotate
throughout the semester - All team members experience these roles several
times - Therefore "selecting chair person and minute
taker" should always be items on an agenda - Each team member must be prepared when going into
a meeting - be ready to discuss status / progress of items
you are responsible for - Be beady to discuss new items
-
42Content of Agenda
- Meeting location, time, audience
- Objectives and preparation
- Preparation that should be competed before
meeting - What do you wish to accomplish
- Status Allocated time for status reports
- Report on specific action items (in progress)
- Discussion Items Allocated time for discussion
- List of issues scheduled to be discussed and
resolved - Be specific in your list and allocate time for
each issue - Wrap Up allocated time for wrap up
- Review assignment of new action items
43During the meeting
- STATUS Progress Review of project
- Review work produced before meeting
- What deadlines have been met?
- What deadlines have been missed and why?
- How do missed deadlines effect the project?
44During the meeting
- DISCUSSION ITEMS For each agenda item
- Bring up and discuss problems and roadblocks
- Brainstorm solutions
- Identify and solve any resulting conflicts
- Identify and distribute new work
- Identify risks and create plan to deal with those
risks
45Role of Chair - 1
- Before the meeting
- Request agenda items from team members
- Create an agenda
- Make the agenda available to the rest of the team
before the meeting. The agenda should be
distributed at least two days before the
meeting. -
46Role of Chair - 2
- During the meeting (Status and discussion items)
- Starts the meeting
- Ensures that each agenda item is discussed within
time allocated - Summarizes key issues during discussion and
summarizes the consensus decision at the end of
the discussion. - Invites other members to have their serious
objections to the consensus decision recorded
47Role of Chair - 3
- During the meeting (Status and discussion items)
- Ensures that each team member had a chance to
voice opinion. - All members should come prepared, have opinions
comments about the agenda items - The chair should encourage quiet team members
- The chair should politely thank long-winded team
members
48Role of Chair - 4
- Close the meeting (Wrap up)
- Summarize decisions
- Ensure that each member understands her/his tasks
and associated deadlines - Ask other team members if there is anything else
that should be included in the summary, or any
disagreement with the chair's interpretation of
the consensus on decisions. (helps the minute
taker to record the important stuff resulting
from the meeting)
49Minute Taker
- Minutes record what happens during a meeting
- To be most useful minutes should be available
soon after the meeting (lt2-3 days) - Make sure that the minutes are posted to caucus
- Meeting minutes are often ALL that is seen by a
manager not present at the meeting. Provide
useful information in your minutes but be concise
50Minute Taker
- Make sure your minutes include
- Date, time, duration and place of meeting
- List present/absent team members
- Indicate if a team member was present for only
part of the meeting (and which part they were
present for) - Record the facilitator and minute taker for the
next meeting
51Minutes
- Make sure your minutes for each item include
- A brief explanation of each item
- A brief summary of general opinion (consensus
decision) about the item - Any assigned tasks arising from the item
- Any serious objection to the consensus decision
and the team member making the objection - Has any part (all) of the item been deferred to a
later meeting?
52Example Agenda items 2nd meeting
- Allocate manager roles and software development
leadership roles - Discuss project schedule and risks as outlined
for Project Deliverable 1 - Create schedule of internal deliverables
- Select chair person for next meeting
- Select minute taker for next meeting
53Obstacles to Effective Meetings
- Dysfunctional communication
- silence or domination
- failure to listen to others
- Not adhering to the agenda (going over time, or
straying off topic) - Vague or poorly prepared agenda
- How do you know if you are off topic if the topic
is not clearly defined in the agenda
54Working in Teams
- Be conscientious about due dates
- Be respectful of ideas of others
- Always prepare and be on time for meetings
- If you are less able to work on the project at a
particular moment of the semester, either due to
sickness, midterms, etc..., you must bring this
issue up during a meeting and discuss it with
your team - If you are sick, get better! Then make sure you
make up for lost time by catching up with the
project and doing extra work