L3. Requirements and Code Quality

Goals

Assignment 4. Working with requirements and tests

  • Terms: Individual assignment, no code may be copied from other students or any other source.
  • Starts: When the assignment is published on the course web.
  • Deadline: See deadlines
  • Examination: Automatic assessment of completed requirements and manual examination
  • Feedback: Help is given during tutoring time and slack. Students will receive feedback by email from the examiner when all handins have examined.

After completing the assignment the student should have...

  • ...done a second iteration on a system
  • ...had the chance to focus on code quality

Rules

Examiner sets the degree using the following:

  • Requirement fulfillment
  • Quality of handin.

The set of minimum requirements for getting a grade (may still be F)

  • Solution has been submitted before the deadline
  • Code should be available on a public git repository.
  • The application must be deployed on a public web server, the server must be available to the examiner for the rest of the course.
  • The assignment is done individually! You are not allowed to copy or take solutions from others.
  • No code is copied from others, student has worked alone
  • No external code except the code given in task, no libraries are used
  • HTML follows web standards
  • Application can be tested with the automated test application.
  • Code has one single page (index.php) Its ok to have another page for testing
  • The application is written in PHP.
  • No javascript is used

Examination criteria 1. Requirement fulfillment (25% of grade)

  • The more testcases that are fullfilled, the better
    • 50%->59% Grade E
    • 60%->69% Grade D
    • 70%->84% Grade C
    • 85%->95% Grade B
    • 95%->100% Grade A
  • Test-cases should be manually and automatically testable (using the test application).
  • The application is well tested even outside of the explicit tests
  • Application works as the example implementation

Examination criteria 2. Additional Requirement(s) (25% of grade)

  • Student should add some functionality to the application. Preferably with a logged in and a logged out use-case.
  • This additional requirement is graded by adding a score to each of the following.
    • Size & Complexity of the added requirement(s), 2-3 Extra Use-cases
    • Usability (How useful is the requirement in current state)
    • Presentation (How well are the extra use-cases and testing-effort presented on GitHub)
    • Each of these three criterias will get a grade between 0-4

Examination criteria 3. Code and Solution Quality (50% of grade)

The examininer will do a subjective code review on the entire git-repository and judge the code on the following.

Sub-Criteria: Code is Object Oriented. (as discussed on lectures, previous courses, and course literature)

  • Code in classes
  • Classes have dependencies
  • Avoids using an array when something should be a class
  • Code uses type-safety when possible
  • Dependencies are encapsulated in a single class
  • Databases, files, super-global arrays($_GET, $_SESSION...) etc
  • No string dependencies (especially avoid on superglobal arrays)
  • Code has an architecture eg. MVC
  • Low coupling
  • Information Expert
  • Law of Demeter

Sub-Criteria: Code is Clean. (as discussed on lectures and course literature)

  • Self explanatory code and well commented
  • Code is readable, no commented out code, indentation on GitHub looks good
  • Meaningful names
  • Errors are handled well (Validation, Exceptions)
  • High and low abstraction levels are separated
  • Read like a newspaper
  • Little code duplication

Sub-Criteria: Project is represented well (For example on GitHub)

  • Status: What is implemented, or not?
  • Describe how to test?
  • Describe how to install?
  • No passwords in git!
  • There is a git history
  • Code is readable, no commented out code, indentation on GitHub looks good

Sub-Criteria: General impression

  • Examiners overall impression.

Each sub-criteria (1-4) is given a grade 0-4 on the following scale:

  • 0. Not even an attempt
  • 1. Fail
  • 2. Sufficient (bare minimum)
  • 3. Good (Some qualities)
  • 4. Excellent (All is good)

Grade on criteria 2 is set by the following

  • A. All 4s
  • B. All 3s, or better
  • C. All 3s
  • D. All 2s, or better
  • E. All 2s
  • F. Some 0 or 1

Requirements, example application, and test-cases.

The Login/Registration requirements and test-applications for L3 are exactly the same as in L2.

Assignment submission

Välkommen till CoursePress

en utav Linnéuniversitets lärplattformar. Som inloggad student kan du kommunicera, hålla koll på dina kurser och mycket mer. Du som är gäst kan nå de flesta kurser och dess innehåll utan att logga in.

Läs mer lärplattformar vid Linnéuniversitetet

Studentkonto

För att logga in behöver du ett studentkonto vid Linnéuniversitet.

Läs mer om att hämta ut studentkonto

Inloggning LNU