TIC2002 (2018)
  • Flat (current format)
  •     Nested
  • Schedule
  • Textbook
  • Admin Info
  • Report Bugs
  • Slack
  • Forum
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • Team IDs
  • Java Coding Standard
  • samplerepo-things
  • Addressbook-level1
  • Addressbook-level2
  • Addressbook-level3
  • Addressbook-level4
  • Projects List
  • Week 13 [Nov 12]

    Todo

    Admin info to read:

    Admin Project: v1.4 [week 13]

    Final tweaks to docs/product, release product, demo product, test/evaluate peer products.

    Summary of submissions:

    Team/Individual Item Name format Upload to
    Source code tag as v1.4 GitHub
    Jar file [team][product name].jar
    e.g. [T09-B1][ContactsPlus].jar
    IVLE
    User Guide [TEAM_ID][Project Name]UserGuide.pdf
    e.g.[T09-B1][Contacts Plus]UserGuide.pdf
    IVLE
    Developer Guide [TEAM_ID][Project Name]DeveloperGuide.pdf
    e.g. [T09-B1][Contacts Plus]DeveloperGuide.pdf
    IVLE
    Product Website README.adoc, Ui.png, AboutUs.adoc GitHub
    Project Portfolio Page [TEAM_ID][Your Name]Portfolio.pdf
    e.g.[T09-B1][John Doe]Portfolio.pdf
    IVLE
    Collated files GitHub

    Deadline for all v1.4 submissions is Week 13 Monday 23.59 unless stated otherwise.

    • ❗️ Penalty for late submission: -1 mark for each hour delayed, up to 3 hours. Even a 1-second delay is considered late, irrespective of the reason. Penalty for delays beyond 3 hours are determined on a case by case basis.
      • For submissions done via IVLE, the submission time is the timestamp shown by IVLE.
      • When determining the late submission penalty, we take the latest submission even if the same exact file was submitted earlier. Do not submit the same file multiple times if you want to avoid unnecessary late submission penalties.
    • The whole team is penalized for problems in team submissions. Only the respective student is penalized for problems in individual submissions.
    • ❗️ Please follow submission instructions closely. Any non-compliance will be penalized. e.g. wrong file name, team member photos not suitable, etc.
    • For pdf submissions, ensure the file is usable and hyperlinks in the file are correct. Problems in documents are considered bugs too  e.g. broken links, outdated diagrams/instructions etc..
    • Do not update the repo during the 14 days after the deadline. Get our permission first if you need to update the repo during that freeze period. You can continue to evolve your repo after that.

    Grading:

    Described in [Admin: Project: Assessment]

    v1.4 Product

    Relevant: [Admin Project → Deliverables → Executable ]

     
    • The product should be delivered as an executable jar file.
    • Ideally, the product delivered at v1.4 should be a releasable product. However, in the interest of lowering your workload, we do not penalize if the product is not releasable, as long as the product is acceptance testable.

    Submission: See summary of submissions above

    v1.4 Source Code

    Relevant: [Admin Project → Deliverables → Source Code ]

     
    • The source code should match the executable, and should include the revision history of the source code, as a Git repo.

    Submission: Push the code to GitHub and tag with the version number. Source code (including collated .md files; please ensure the collated .md files are up to date; any updates to collated code files after the deadline will be considered a later submission). Note that the quality of the code in these collated code files accounts for a significant component of your final score, graded individually.

    v1.4 User Guide

    Relevant: [Admin Project → Deliverables → User Guide ]

     
    • The User Guide (UG) of the product should match the proposed v2.0 of the product and in sync with the current version of the product.
    • Features not implemented yet should be clearly marked as Coming in v2.0
    • Ensure the UG matches the product precisely, as it will be used by peer testers (and any inaccuracy in the content will be considered bugs).

    Submission: Convert the pdf (AB4 dev guide has some instructions on converting project docs to pdf) and upload to IVLE. See summary of submissions above for the file name format.

    v1.4 Developer Guide

    Relevant: [Admin Project → Deliverables → Developer Guide ]

     
    • The Developer Guide (DG) of the product should match the proposed v2.0 of the product and should be in sync with the current version of the product.
    • ❗️ The appendix named Instructions for Manual Testing of the Developer Guide should include testing instructions to cover all your major and minor enhancements. There is no need to add testing instructions for existing features if you did not touch them.
      💡 What to include in the appendix Instructions for Manual Testing? This appendix is meant to give some guidance to the tester to chart a path through the features, and provide some important test inputs the tester can copy-paste into the app. There is no need to give a long list of test cases including all possible variations. It is upto the tester to come up with those variations. However, if the instructions are inaccurate or deliberately misses/mis-states information to make testing harder  i.e. annoys the tester, the tester can report it as a bug  (because flaws in developer docs are considered as bugs).
    • Ensure the DG matches the product precisely, as it will be used by peer evaluators (and any inaccuracy in the content will be considered bugs).

    Submission: Similar to UG

    v1.4 Product Website

    Relevant: [Admin Project → Deliverables → Product Website ]

     
    • Include an updated version of the online UG and DG that match v1.4 executable
    • README : Ensure the Ui.png matches the current product
    • AboutUs : Ensure the following:
      • Use a suitable profile photo
    • The purpose of the profile photo is for the teaching team to identify you. Therefore, you should choose a recent individual photo showing your face clearly. Some examples can be seen in the 'Teaching team' page. Given below are some examples of good and bad profile photos.

    • If you are uncomfortable posting your photo due to security reasons, you can post a lower resolution image so that it is hard for someone to misuse that image for fraudulent purposes. If you are concerned about privacy, you can request permission to omit your photo from the page by writing to prof.

    • Contains a link to each person's Project Portfolio page
    • Team member names match full names used by IVLE

    Submission: Push the code to GitHub

    v1.4 Demo

    Relevant: [Admin Project → Deliverables → Demo ]

     
    • Duration: Strictly (teamSize x 3) + 1 minutes  e.g. 17 minutes for a 5-person team. Exceeding this limit will be penalized. The extra minute is for the first speaker to give an overview of the product.

    • Target audience: Assume you are giving a demo to a higher-level manager of your company, to brief him/her on the current capabilities of the product. This is the first time they are seeing the new product you developed but they are familiar with the AddressBook-level4 (AB4) product.

    • Scope:

      • Each person should demo the enhancements they added. However, it's ok for one member to do all the typing.
      • Subjected to the constraint mentioned in the previous point, as far as possible, organize the demo to present a cohesive picture of the product as a whole, presented in a logical order.  Remember to explain the profile of the target user profile and value proposition early in the demo.
      • It is recommended you showcase how the feature improves the user’s life rather than simply describe each feature.
      • No need to cover design/implementation details as the manager is not interested in those details.
      • Mention features you inherited from AB4 only if they are needed to explain your new features.  Reason: existing features will not earn you marks, and the audience is already familiar with AB4 features.
    • Structure:

      • Demo the product using the same executable you submitted, on your own laptop, using the TV.
      • It can be a sitting down demo: You'll be demonstrating the features using the TV while sitting down. But you may stand around the TV if you prefer that way.
      • It will be uninterrupted demo: The audience members will not interrupt you during the demo. That means you should finish within the given time.
      • The app should be populated with a significant amount of realistic data at the start.  e.g at least 20 contacts.
      • Dress code : The level of formality is up to you, but it is recommended that the whole team dress at the same level.
    • Optimizing the time:

      • Spend as much time as possible on demonstrating the actual product. Not recommended to use slides (if you do, use them sparingly) or videos or lengthy narrations.
        Avoid skits, re-enactments, dramatizations etc. This is not a sales pitch or an informercial. While you need to show how a user use the product to get value, but you don’t need to act like an imaginary user. For example, [Instead of this]Jim get’s a call from boss. "Ring ring", "hello", "oh hi Jim, can we postpone the meeting?" "Sure". Jim hang up and curses the boss under his breath. Now he starts typing ..etc. [do this] If Jim needs to postpone the meeting, he can type …
        It’s not that dramatization is bad or we don’t like it. We simply don’t have enough time for it.
        Note that CS2101 demo requirements may differ. Different context → Different requirements.
      • Rehearse the steps well and ensure you can do a smooth demo. Poor quality demos can affect your grade.
      • Don’t waste time repeating things the target audience already knows. e.g. no need to say things like "We are students from NUS, SoC".
      • Bring sufficient amount of sample data and know how to load them to the system. You should not plan to type all the sample data during the demo itself. On the other hand, trying to demo a product using just 1-2 sample data creates a bad impression too.
      • Plan the demo to be in sync with the impression you want to create. For example, if you are trying to convince that the product is easy to use, show the easiest way to perform a task before you show the full command with all the bells and whistles.
      • Limit the demo to CLI inputs only. There is no point explaining GUI inputs because they don't earn marks.

    • Venue: Same as the tutorial venue unless informed otherwise.
    • Schedule: Your demo timing is same as your tutorial time in week 13. Starting times: Team B1: 00 minutes, B2: 20 minutes, B3: 40 minutes, B4: TBA
      At least some team members need to arrive 15 minutes ahead of the allocated time to set up your computer.
      There is an automatic penalty if you are not ready to start on time.
      Wait outside the venue until you are called in.

    v1.4 Practical Exam

    Relevant: [Admin Project → Deliverables → Practical Exam ]

     

    Objectives:

    • Evaluate your,
      • manual testing skills
      • product evaluation skills
      • effort estimation skills
    • Peer-evaluate your
      • product design
      • implementation effort
      • documentation quality
    • Your performance in the practical exam will be considered for your final grade (under the QA category and under Implementation category, about 10 marks in total).
    • You will be graded based on your effectiveness as a tester (e.g., the percentage of the bugs you found, the nature of the bugs you found) and how far off your evaluation/estimates are from the evaluator consensus.  Explanation: we understand that you have limited expertise in this area; hence, we penalize only if your inputs don't seem to be based on a sincere effort to test/evaluate.
    • The bugs found in your product by others will affect your v1.4 marks. You will be given a chance to reject false-positive bug reports.

    Preparation:

    • Ensure you have access to a computer that is able to run module projects  e.g. has the right Java version.
    • Have a good screen grab tool with annotation features so that you can quickly take a screenshot of a bug, annotate it, and post in the issue tracker.
    • 💡 You can use Ctrl+V to paste a picture from the clipboard into a text box in GitHub issue tracker.

    During:

    1. Take note of your team to test and your Tester ID. Both will be given to you by the teaching team (distributed via IVLE gradebook).
    2. Download from IVLE all files submitted by the team  (i.e. jar file, User Guide, Developer Guide, and Project Portfolio Pages) into an empty folder.
    3. [~40 minutes] Test the product and report bugs
      • Launch the jar file. Test it.
      • You can use Developer Guide (Appendix named Instructions for Manual Testing) and the User Guide in your testing.
      • No need to test features that are driven by GUI inputs (e.g. buttons, menus, etc.)  Reason: Only CLI-driven features can earn credit, as per given project constraints. Some features might have both a GUI-driven and CLI-driven ways to invoke them, in which case test only the CLI-driven way of invoking it.
      • The testing instructions in the Developer Guide can provide you some guidance but if you follow those instructions strictly, you are unlikely to find many bugs. You can deviate from the instructions to probe areas that are more likely to have bugs.
      • You can do acceptance testing as well as system testing.
      • Omit feature that existed in AB4. Instead, test features added by the team.
      • Report bugs in the practical exam issue tracker, not in the team's repo.
        • Issue title format: [Tester ID] Issue description  e.g. [26] Empty name crashes app
        • Do not use team ID in bug reports  Reason: to prevent others copying your bug reports
      • Report bugs only. Do not post suggestions. These are considered bugs:
        • Behavior differs from the User Guide (or Developer Guide)
        • A legitimate user behavior is not handled  e.g. incorrect commands, extra parameters
        • Behavior is not specified and differs from normal expectations  e.g. error message does not match the error
      • Write good quality bug reports; ❗️ poor quality or incorrect bug reports will not earn credit.
        • Use a descriptive title
        • Give a good description of the bug with steps to reproduce and screenshots
        • Note that we will anonymize bug reports before revealing it to the receiving team.
      • Assign a severity to the bug report:

    Bug Severity labels:

    • severity.Low : A flaw that is unlikely to affect normal operations of the product. Appears only in very rare situations and causes a minor inconvenience only.
    • severity.Medium : A flaw that causes occasional inconvenience to some users but they can continue to use the product.
    • severity.High : A flaw that affects most users and causes major problems for users. i.e., makes the product almost unusable for most users.
    1. [~40 minutes] Evaluate the following aspects. Note down your evaluation in a hard copy (as a backup). Submit via TEAMMATES.

      • A. Cohesiveness of product features []: Do the features fit together and match the stated target user and the value proposition?

        • low: One of these
          • target user is too general  i.e. not narrower than AB4
          • target user and value proposition is not clear from the user guide OR
          • features don't seem to match for the most part.
        • medium: Some features match but some don't.
        • high: All features match but the features are not very high value to the target user.
        • excellent: The target user is clearly defined (not too general) and almost all new features are of high-value to the target user. i.e. the product is very attractive to the target user.
        • unable to judge: You are unable to judge this aspect for some reason.
      • B. Quality of user docs []: Evaluate based on the parts of the user guide written by the person, as reproduced in the project portfolio. Evaluate from an end-user perspective.

        • low: Hard to understand, often inaccurate or missing important information.
        • medium: Needs some effort to understand; some information is missing.
        • high: Mostly easy to follow. Only a few areas for improvements.
        • excellent: Easy to follow and accurate. Just enough information, visuals, examples etc. (not too much either).
        • unable to judge: Less than 1 page worth of UG content written by the student.
      • C. Amount of work []: Evaluate the amount of work on a scale of 0 to 30

        • Consider this PR (history command) as 5 units of effort which means this PR (undo/redo command) is about 15 points of effort. Given that 30 points matches an effort twice as that needed for the undo/redo feature (which was given as an example of an A grade project), we expect most students to be have efforts lower than 20.
        • Count all implementation/testing/documentation work as mentioned in that person's portfolio page.
        • ❗️ Do not give a high value just to be nice. If your estimate is wildly inaccurate, it means you are unable to estimate the effort required to implement a feature in a project that you are supposed to know well at this point. You will lose marks if that is the case.
        • When estimating effort, ignore features that are driven by GUI inputs.
      • D. Depth of feature (major feature) []: Evaluate the major feature done by the student for difficulty, depth, and completeness. Note: examples given below assumes AB4 did not have the commands edit, undo, and redo.

        • low : An easy feature  e.g. make the existing find command case insensitive.
        • medium : Moderately difficult feature, barely acceptable implementation  e.g. an edit command that requires the user to type all fields, even the ones that are not being edited.
        • high: One of the below
          • A moderately difficult feature but fully implemented  e.g. an edit command that allows editing any field.
          • A difficult feature with a reasonable implementation but some aspects are not covered  undo/redo command that only allows a single undo/redo.
        • excellent: A difficult feature, all reasonable aspects are fully implemented  undo/redo command that allows multiple undo/redo.
        • outstanding: A difficult feature, implemented as good as it can be under the circumstances.  undo/redo command that even allows undoing non-mutating commands such as select, allows selectively undo specific commands in the history, etc.
        • unable to judge: You are unable to judge this aspect for some reason.
      • E. Quality of developer docs []: Evaluate based on the developer docs cited/reproduced in the respective project portfolio page. Evaluate from the perspective of a new developer trying to understand how the features are implemented.

        • low: One of these
          • Very small amount of content (i.e., 0.5 - 1 page).
          • Hardly any use to the reader (i.e., content doesn't make much sense or redundant).
          • Uses ad-hoc diagrams where UML diagrams could have been used instead.
          • Multiple notation errors in UML diagrams.
        • medium: Some diagrams, some descriptions, but does not help the reader that much  e.g. overly complicated diagrams.
        • high: Enough diagrams (at lest two kinds of UML diagrams used) and enough descriptions (about 2 pages worth) but explanations are not always easy to follow.
        • excellent: Easy to follow. Just enough information (not too much). Minimum repetition of content/diagrams. Good use of diagrams to complement text descriptions. Easy to understand diagrams with just enough details rather than very complicated diagrams that are hard to understand.
        • unable to judge: One of these
          • no content at all.
          • less than 0.5 pages worth of content.
          • other problems in the document  e.g. looks like included wrong content.

    Bug Review Period:

    There will be a review period for you to respond to the bug reports you received.

    Duration: The review period will start around 1 day after the PE (exact time to be announced) and will last until the following Wednesday midnight.

    Bug reviewing is recommended to be done as a team as some of the decisions need team consensus.

    Instructions for Reviewing Bug Reports

    • First, don't freak out if there are lot of bug reports. Many can be duplicates and some can be false positives. In any case, we anticipate that all of these products will have some bugs and our penalty for bugs is not harsh. Furthermore, it depends on the severity of the bug. Some bug may not even be penalized.

    • Do not edit the subject or the description. Do not close bug reports. Your response (if any) should be added as a comment.

    • If the bug is reported multiple times, mark all copies EXCEPT one as duplicates using the duplicate tag. In addition, use this technique to indicate which issue they are duplicates of. Duplicates can be omitted from processing steps given below.

    • If a bug seems to be for a different product (i.e. wrongly assigned to your team), let us know (email prof).

    • Decide if it is a real bug and apply ONLY one of these labels.

    Response Labels:

    • response.Accepted : You accept it as a bug.
    • response.Rejected : What tester thought as a bug is in fact expected behavior. ❗️ The penalty for rejecting a bug using an unjustifiable explanation is higher than the penalty if the same bug was accepted. You can also reject bugs that you inherited from AB4.
    • response.CannotReproduce : You are unable to reproduce the behavior reported in the bug after multiple tries.
    • response.IssueUnclear : The issue description is not clear.
    • If applicable, decide the type of bug:

    Bug Type Labels:

    • type-FunctionalityBug : the bug is a flaw in how the product works.
    • type-DocumentationBug : the bug is in the documentation.
    • Suggest a severity for the bug:

    Bug Severity labels:

    • severity.Low : A flaw that is unlikely to affect normal operations of the product. Appears only in very rare situations and causes a minor inconvenience only.
    • severity.Medium : A flaw that causes occasional inconvenience to some users but they can continue to use the product.
    • severity.High : A flaw that affects most users and causes major problems for users. i.e., makes the product almost unusable for most users.
    • Decide who should fix the bug. Use the Assignees field to assign the issue to that person(s). There is no need to actually fix the bug though. It's simply an indication/acceptance of responsibility. If there is no assignee and we are unable to determine a suitable assignee ourselves, we'll have no choice but to distribute the penalty for that bug (if any) among all team members.

    • Add an explanatory comment explaining your choice of labels and assignees.

    Time/venue: week 13 lecture slot

    Outcomes

    🅿️ Project

    W13.1 Can demo a product

    Demo the project.

    Tutorial 13


    For W12.1 Can build a 1-2 KLoC program

    Complete the project as specified.

    Lecture 13