Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D....

30
Copyright D. Petkovic 1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer (Fulda University, Germany) Prof. S. Huang (Florida Atlantic University, Boca Raton, Florida, USA) 08/04/09

Transcript of Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D....

Page 1: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Software EngineeringCSc640/848

Fall 2009Class 2 - Final Project

Prof. D. Petkovic

Lecturer: Gary Thomson

Prof. R. Todtenhoefer (Fulda University, Germany)

Prof. S. Huang (Florida Atlantic University, Boca Raton, Florida, USA)

08/04/09

Page 2: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Final Project• About Final project• High level vision of what needs to be built• Organization• Milestones and deliverables• Grading• Global groups and global SE• Tools for communication between group

members• Infrastructure for product development

Page 3: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

About Final Project• General Objective: By developing a SW application in a

team setting, students will truly learn, experience and exercise all key steps in SW Engineering methodology of choice.

• Final project is the cornerstone of the class – learn SE methods and teamwork by doing it

• Teaching synchronized with Final Project• We will simulate real world small SW company – we

believe this is the only way to learn real SW Engineering• Adherence to the process as well as final product quality

are both part of grading

Page 4: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

About Final ProjectTeaching Method:• Student groups (4-6) will simulate real world small SW

company to deliver a real SW product in five milestones• Performing in as real conditions as possible (e.g. SW

company), with lectures covering basic concepts in parallel with milestone deliverables

• Local and global groups• Coaches play the role of CEO, CTO, VPs of Engineering,

Sales and Marketing and Customer• Interaction and student participation is the key and is

required• Class teaching (e.g. “theory”) synchronized with Final

Project Milestones

Page 5: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Benefits of final project• Skills to be developed during final project:

– Practical application of class material on SE methods

– Teamwork

– Experience with full SW development lifecycle

– Experience with modern tools and platforms

– As close as possible to real life as possible

– Global SE skills for volunteer groups

• Great experience for getting and retaining good jobs in global economy

• Portfolio will be developed which is very useful in job search, especially for students with no industry experience

Page 6: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

NEW since Fall 2008• Individual Milestone 0 forcing early learning and

installation of main tools and learning about the SW to be used as a basis for final project – mandatory, carries 5%

• New partners (since Fall 2008) in Florida Atlantic University, Boca Raton, Florida – Prof. Shihong Huang

• Continuing with our original partners at Fulda University, Germany

• Final project application this year: WWW-based restaurant reservation and rating

Page 7: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Final Project – Restaurant reservation and rating

• Create a WWW application that allows guests to check the restaurant, learn more about it, reserve the time and table, and rate it

• High level “vision” is posted• Consult many similar applications existing today (your

choice)

Page 8: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Working models and roles for student groups and instructors

• Local groups: emulate a single SW company hired by a a customer to develop a RestaurantRez project. All team members are in the same school

• Global groups: teams never meet each other, work remotely. SFSU partners are students of Prof. R. Todtenhoefer, Fulda, Germany and Prof. S. Huang, Florida Atlantic, Boca raton, Florida.

• Two kinds of global groups:– SFSU – Fulda (+ 9 hours time difference from SFSU)

– SFSU – FAU (+ 3 hours time difference from SFSU)

– Optional: team comprised of SFSU, Fulda, FAU students

• Instructors have multiple roles:– Coaches, helpers

– VPs of Engineering and Marketing in student SW companies

– Customer representatives

– Conflict resolution

Page 9: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Group scenarios• SFSU and FAU start at about the same time (late August),

Fulda starts mid October• Local groups (5-6 students each): small SW startups, in

charge of the whole project, from requirement solicitation to delivery

• Global groups:– SFSU-FAU (3+3): starting at the same time; both groups part of

the same company with distributed teams– SFSU-FULDA (4+2): SFSU prime contractor, hires Fulda group

for implementation in October

• Each group has a team lead• FAU: + 3 Hours time diff.; FULDA + 9 Hours time diff.

Page 10: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Classroom teaching and Final Project

• Class teaching will be synchronised and driven by Final project needs

• Class material needed for milestones will be presented before milestones are due – “just in time”

• Last hour or so every class student groups will sit together in the classroom, work on their own and also meet with instructors.

• Instructors will apply Scrum and Agile SE methods

Page 11: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Some Resources – tentative DDD

• Final Project High Level Visionhttps://restaurantrez.dev.java.net/servlets/ProjectDocumentList

• Environment set up instructions:https://restaurantrez.dev.java.net/docs/MileStone0.html

• Some WWW sites with similar applications– http://www.opentable.com/start.aspx?m=4

Page 12: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Roles - SFSU• Instructors will play the role of:

– CEO, VP of Engineering (schedules, critical decisions, marketing, legal)

• Dr. Petkovic– CTO (Architecture, Developmental tools, etc)

• Gary Thompson – Company VP of Marketing, Sales (usability, features, feedback)

• All Instructors– Customer representative (usability, requirements, features,

schedules)• All instructors

– Coach (help resolve and explain issues, teach…)• All Instructors

– Tools (SW development and communication)• Gary Thompson

– Early Fulda technical involvement (before their class starts): • TA from Fulda

Page 13: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Milestone 0 - individual

• Covers:– Learning and installing collaborative tools

– Learning and installing SEW development tools

– Learning about the class and etachign methods

• Mandatory, 5% of the grade, critical for student success

• https://restaurantrez.dev.java.net/docs/MileStone0.html

• Due in 2 weeks

Page 14: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Group Milestones 1-5• Milestone 1: High Level Specs, UI specs and Use cases –

Late September• Milestone 2: More detailed specs – Mid October• Milestone 2a (SFSU-Fulda): Hire Fulda team, bring them

up to speed, develop plans and interfaces – Late October• Milestone 3: First prototype and feedback (meeting with

instructors) – mid to late November• Milestone 4: Beta delivery, QA plans and usability

feedback – late November to early December • Milestone 5: Final Project demo and delivery – early or

late December (shortly after exam week) NOTE: TBD based on class schedules from FAU and FULDA

Page 15: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

M1highlevel specs

M2 detailedspecs

M3 prototypeand arch.Week of

M4 betaand usability

M5 final deliveryand demo

3) Req. and specs

2) Final project

4) Architecture,tools

5) GUI

6) UML, SW processes

7) Proj. mng.; teamwork

8) Des. Patterns, Coding style, Src. Cntrl, 9) QA, usability

Time

Milestone deliveries

Class topics

Teaching synchronized and driven by milestones(M0 – individual; M1-M5 – group)

M2AM0Tools

10) SW Metrics

Page 16: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Group Milestones (NOT Milestone 0)• For the first four milestones M1-M4:

• Each announced in the class with detailed instructions posted (deliverables, schedule, format)

• Groups develop milestone documents and submit to the instructors for review as per schedule by team lead

• Instructors give official feedback on document hard copy• Students discuss in the group and with instructors and

incorporate e-mail in the document, freeze it for final delivery. Keep the copy with instructors comments.

• Use the previous milestone to develop the next milestone – have to be consistent

• Fifth milestone M5: final project demo and submission of all milestone documents, surveys, logs etc.

• Class material will be synchronized with milestones

Page 17: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Group Milestone interaction

• Students must submit each milestone document in TWO hard copies (to CS office), in requested format, on time, otherwise documents will be returned and considered not delivered on time

• No on-line submissions. Hard copy will be used to write instructors comments on it and be returned to the group

• Any delay in submission has to be approved by the instructor – team lead sends e-mail with the request for postponement before the milestone deadline

• The more interaction, the better

Page 18: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Final Project Organization• Students will work in groups of 5-6 • Groups will be selected by instructor in order to balance

skill levels. • Group Leaders will be selected by instructors, with student

feedback• Instructor and Lecturer will not get involved nor help in

details of coding and implementation; this will be the responsibility of the group.

• Global groups: Volunteer groups will engage, when possible, in doing the final project with students from our partner universities in Fulda, Germany (+ 9 hours time difference) and FAU (+ 3 hours time difference) in order to experience and train in global SW engineering.

Page 19: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Group Leads• Instructors will select a group leader (with group input

considered) • Role of group leads

– Organize and schedule meetings– Single point of contact with instructors (I.e. sends and receives all

e-mail an submissions between the group and instructor))– Help resolve issues– Can request meeting/input from instructors– Participation in creating deliverables as other team members

• May get up to 3% extra points for job well gone• Great experience for those interested in SW lead or

management• Will get coaching and help from instructors

Page 20: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Teamwork• All group members must contribute to the best of their

abilities

• Participation in teamwork and group work, attending meetings and be courteous and responsible is a must

• All group members get the same grade UNLESS the instructors are told or discover that somebody is not contributing fully. Those persons, if violations are verified, may receive reduced grade

• Team lead or anybody: please report to instructor if group member is definitively not cooperating. Action will follow, mediation will be attempted first ….

Page 21: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

What is teamwork

• Knowledge and proper application of SE processes

• Knowledge of team organization and dynamics in SW development

• Proper personal team behaviour: ethics, courtesy, attendance, being reachable and responsive

• Knowledge and proper application of SW development tools

• Knowledge and application of team collaborative tools

MUST DO for students in this class

Page 22: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Teamwork

• Success of SW projects is more correlated with team cohesion than sum of the quality of people

• Being a star in a team that does not have good teamwork does not bring success

Page 23: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Interaction with Instructor and GTA• Interaction and teamwork (inter-team, with instructors) is

the key and required . Poor or no interaction reduces the grade

• Content of the interaction of any class feedback (verbal, surveys, time cards) will NOT be graded and it is encouraged please ask what you don’t understand and consult the instructors, there are no “bad” questions.

• Initiate interaction with instructors when you feel it is needed (verify specs etc.) via e-mail, schedule meetings

• Grading is based not only on results but also on participation and interaction (subjectively determined by instructors)

Page 24: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Global Software Engineering Issues

• One objective of the class is to train students and to understand issues of Global SW Engineering (SE)

• 3-5 volunteer groups will participate in Global SE version of Final project by forming Global groups with either (but not both) Fulda University in Germany or FAU in Boca Raton, and one maybe comprising of all three schools

• We will also teach some key issues regarding managing of global groups – need to be implemented

• This is hard and we know it – grading will be adjusted. The key is to try it and learn!

Page 25: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Assessment of progress

• It will be critical to monitor (surveys, logs, weekly status reports) SW engineering and teamwork issues arising in Global groups, and compare them with Local groups. This will be done by variety of ways: measurements, logs, self evaluation, questionnaires, surveys via time cards etc.

• Content of time cards and surveys is NOT used for grading

• Both local and global groups have to do this – it is mandatory to fill in time cards.

• Failure to submit time cards may result in up to 5% penalty in the grade

Page 26: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Assessment of progress (2)

• We will monitor the following issues related to Global SE and compare it with “classic” i.e. Local– Quality of delivered product– Resources, costs and efforts required to reach the deliverables

(NOT used for grading)– Teamwork, group dynamics and user satisfaction or frustration

with the process (NOT used for grading)– Factors that influence productivity of local vs. global groups:

distance, time zone, lack of personal contact (NOT used for grading)

• Time cards will be required weekly• Templates will be provided

Page 27: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

SE Engineering methods recommended

• High level: Agile, Scrum, Iterative

• For user intensive subsystems: User Centred Design

(Know what methods you use and why)

Page 28: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

SW environment to be used

• Follow Milestone 0

Page 29: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Final Project Grading –50%• Adherence to SW Engineering process (20/50)

– Quality and completeness of milestone documents– Delivery on time, in proper format– Time cards submission done (yes/no)– Ability to deal with feedback and iterate– Ability to effectively apply SW Engineering methods– Group engagement and participation

• Quality of final delivered product (20/50)– Functionality– Ease of use– Architecture– Final (not intermediary) submitted documents (milestone docs

etc.)– Adherence to requirements

• Demo (10/50)– Presentation delivery, slide content and layout, adherence to

allotted time

Page 30: Copyright D. Petkovic1 Software Engineering CSc640/848 Fall 2009 Class 2 - Final Project Prof. D. Petkovic Lecturer: Gary Thomson Prof. R. Todtenhoefer.

Copyright D. Petkovic 1

Summary• Final project is the cornerstone of the class – learn by

doing it. All classes synchronized with Final project milestones

• We will simulate real world small SW company – this is the only way to learn SW Engineering

• Adherence to the process as well as final product are equally important and equally graded

• “Journey is the reward”• Global SW Engineering will also be explored• This year application: restaurant reservation and ratingThis is unique and critical training to prepare you for the

real world as SW developer, tech lead, managerProvides effective portfolio to help you in job search