CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week....

51
CS3283/4 Media Tech Projects

Transcript of CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week....

Page 1: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

CS3283/4 Media Tech Projects

Page 2: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Lecture 1 Overview

14 Jan 2017

Page 3: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

About MTP

• Software engineering project with a media focus

• Team of 4-5 students

• Apply CS2103 to build a cool large-scale software

Page 4: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

At the end of the project, you should be able to

• apply rigorous and principled software development methodologies and techniques to develop user-friendly, robust, secure, and efficient software systems

Page 5: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

• demonstrate strong communication and teamwork skills

• apply CS principles to analyse and formulate a problem, and to design + implement + evaluate the solution to the problem.

Page 6: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Workload

• 8 MCs = 20 hours per week per person

• Produce 100 hours of work per week

Page 7: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Schedule

• Week 2 - 4: Analysis and Design

• Week 5 - 9: Implementation and Testing

• Week 10 - 13: Evaluation and Report

Page 8: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

AssessmentCA Week Individual Team

CA1 1 - 4 0% 20%

CA2 5 - 9 40% 0%

CA3 10 - 13 20% 20%

Overall 60% 40%

Page 9: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Assessment• Quality and amount of work done

• For individual: weekly work log and code commits

• For team: requirement and design documents, final report, presentation, videos, etc.

• Peer reviews

Page 10: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Contact Time

• Weekly lecture (1st half)

• Team meeting (twice a week)

• Project session (10 hours a week)

Page 11: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Website

• https://nus-mtp.github.io/1617

• Follow the repo https://github.com/nus-mtp/1617 for changes

Page 12: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku
Page 13: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

GitHub Repo• Wiki for documentation / work log

• Projects for task management

• Issues for bug tracking

• Pull request for code review

• Code commit history for assessment

Page 14: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

GitHub Repo• Wiki for documentation / work log

• Projects for task management

• Issues for bug tracking

• Pull request for code review

• Code commit history for assessment

Page 15: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Schedule

• Week 2 - 4: Analysis and Design

• Week 5 - 9: Implementation and Testing

• Week 10 - 13: Evaluation and Report

Page 16: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Development Process

Page 17: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Software as a Service

• Continuous deployment

• Continuous integration

• Test-driven development

• Multiple sprints

Page 18: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Software Requirement• What your software will do (not how)

• Finish a draft by end of your 2nd session next week

• Continue to iterate through the rest of the semester

• Week 4 version will be graded

Page 19: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Software Requirement• Talk to your users / client

• Do a survey

• Study similar software

• Come up with functional / non-functional requirements

• Document them

Page 20: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Design / Architecture• How to meet the requirements

• First draft by end of second session in Week 3

• Continue to iterate through the rest of the semester

• Week 4 version will be graded

Page 21: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Design / Architecture• What framework/language/algorithm/

etc to use

• Database schemas

• Software components and their interaction

• UI design

Page 22: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Project Planning• Organized into (at least) 5 weekly

sprints

• Prioritize the features

• Estimate the time needed

• No plan is perfect: adjust as you go

Page 23: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Coding• Write code

• Test code

• Review code

• Deploy

• Repeat

Page 24: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Tools

• Github for code review

• Linting tools for static analysis

• Travis for continuous integration

• Heroku for continuous deployment

Page 25: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Evaluation• Robust: integration testing, load

testing, etc

• Secure: penetration testing, etc

• Efficient: profiling and optimization

• User-friendly: Nielsen’s heuristic, think-aloud protocol, etc.

Page 26: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Deliverables• GitHub webpage

• Explainer video

• Developer’s guide

• STePS poster and presentation

• Oral examination and demonstration

Page 27: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Software Requirements

Page 28: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Functional vs.

Non-functional

Page 29: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

1. Define the goals

of the project

Page 30: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

2. Communicate among team

members and with customers

Page 31: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

3. Leads to test cases and

evaluation criteria

Page 32: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

4. Helps to plan project and

schedule tasks

Page 33: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

5. Reduce bugs

Page 34: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

7 Better software design

Page 35: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

8. Serves as contract

Page 36: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Properties of Good Software Requirements

Page 37: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

1. Correct

Page 38: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

2. Valuable

Page 39: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

3. Easy to Read

Page 40: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

4. Design Free

Page 41: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

5. Attainable

Page 42: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

6. Complete

Page 43: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

7. Consistent

Page 44: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

8. Unambiguous

Page 45: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

9. Verifiable

Page 46: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

10. Atomic

Page 47: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Use Case vs.

User Stories

Page 48: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Use Case• System: X • Actor: Manager • Precondition: Manager has logged in • Gurantees: Module is added to student registration record • MSS:

• 1. Manager enters student number • 2. Manager enters the module code • 3. Manager clicks add • 4. System reports that module is added to student’s record

• Extensions: • 4.1 Systems reports that module is full

• 4.1.1 Manager clicks OK • 4.2. Systems reports that student does not have one of the prerequisite.

• 4.2.1 Manager clicks “overwrite” to add the module to student’s record anyway

Page 49: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

User Stories

• As a manager, I want to register a module to a student so that the module appears in the student’s record if the module is not full and student meets the prerequisite of the module (but the prerequisite can be overridden)

Page 50: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Next Week• Decide the functional and non-

functional requirements

• Write it down in GitHub

Page 51: CS3283/4 Media Tech Projectsooiwt/cs3283/lect1.pdf · • Produce 100 hours of work per week. Schedule ... • Continue to iterate through the rest of the semester ... • Heroku

Tips• Use the members’ time effectively

• Use the meeting time effectively (remember the 10-10 split in workload)