This site is from a past semester! The current version is here.
CS2113/T Aug '19
  • Week 1 [Aug 12]
  • Week 2 [Aug 19]
  • Week 3 [Aug 26]
  • Week 4 [Sep 2]
  • Week 5 [Sep 9]
  • Week 6 [Sep 16]
  • Week 7 [Sep 30]
  • Week 8 [Oct 7]
  • Week 9 [Oct 14]
  • Week 10 [Oct 21]
  • Week 11 [Oct 28]
  • Week 12 [Nov 4]
  • Week 13 [Nov 11]
  • Textbook
  • Admin Info
  • Report Bugs
  • Slack
  • Forum
  • Project Info
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • Duke
  • Project Phase1 Dashboard
  • Java Coding Standard
  • samplerepo-things
  • Projects List
  • config.json templates for Reposense
  • PersonalAssistant-Duke
  • Project Phase2 Dashboard
  • Reference project - Addressbook
  • Repl.it classroom
  • Previous WeekNext Week

    Week 11 [Oct 28]

    Suggested tutorial activities:

    Demo

    Two members together do a quick demo of your v1.3 using the jar file

    Suggested tutorial activity

    Test case design

    Whole team: do this question together, using the whiteboard

    Apply heuristics for combining multiple test inputs to improve the E&E of the following test cases, assuming all 6 values in the table need to be tested. underlines indicate invalid values. Point out where the heuristics are contradicted and how to improve the test cases.

    SUT: consume(food, drink)

    Test case food drink
    TC1 bread water
    TC2 rice lava
    TC3 rock acid

    Questions

    Divide the following questions among team members and get ready to answer them.

    Q1

    1. What is Liskov Substitution Principle?
      Give an example from the project where LSP is followed and explain how to change the code to break LSP.
    2. Explain how Law of Demeter affects coupling
      a. Add a line to this code that violates LoD
      void foo(P p){
          //...
      }
      
    3. Give an example in the project code that violates the Law of Demeter.

    Q2. Design patterns.

    1. When do you use MVC pattern?
    2. When do you use the Singleton pattern, Command pattern?

    Q3. Process models

    1. Distinguish between sequential and iterative processes. Which one are we using in the project?
    2. Distinguish between breadth-first and depth-first iterative processes using your project as an example.
    3. Describe how agile process models differ from traditional process models.

    Q4. XP and Scrum

    (Divide XP and Scrum between the two teams for the following activity, if there is enough time left.)

    • Each team use the Web to find about 5 distinguishing features of the process model.

    • Relate those features to your project. i.e. are they applicable? are you doing something similar?