Skip to content

340CT-1819SEPJAN/TEACHING-MATERIALS

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

Software Quality and Process Management

On completion of this module, a student should be able to:

  1. Select, evaluate and apply standards, tools and techniques for assuring software quality
  2. Critically review a software development process and identify its ranking in an accepted capability maturity model.
  3. Critically evaluate an architectural design against accepted quality criteria.
  4. Select, evaluate and use tools and techniques to successfully manage a large scale software project, including configuration management and version control.
  5. Estimate the cost and duration of a software project.

Module Content

The module content is split into the following topics. Each topic lasts for one or two weeks. The lab activities for each are provided in numbered markdown files in the home directory of this repository with the supporting materials in the exercises/ directory. You should start by cloning this repository into your development workstation. This might be:

  1. Using the Windows 10 lab computers (download Visual Studio Code from the AppsAnywhere server)
  2. Using your own laptop computer
  3. or you might use your Chromebook and clone into an instance of an online IDE such as Goorm. For help with this option you will find a lab called Setup.

1 ECMA6

Lecture Slides

You will need to understand the syntax of the ECMA programming language which you will be using to develop your software during this module.

There are two labs to complete and you should aim to get both completed in the first two weeks:

  1. Templates and Forms
  2. Dynamic Websites

The extension lab covers the use of advanced async features to reduce the complexity of your code and improve legibility.

2 Test-Driven Development

Lecture Slides

In this week we will be extending your understanding of ECMA6 by learning how to apply the principles of Test-Driven Development (TDD) when writing code in the ECMA6 programming language. You will be required to complete the TDD Express lab this week. There are two additional labs that you should be attempting if time allows.

  1. TDD API
  2. TDD for Browser JS using the MQTT protocol

3 Software Design

At this stage you will have been assigned to an assignment topic and will apply the Domain-Driven Design (DDD) techniques to build a domain model and use this to explore alternative architectures. This will form part of your assignment submission. If you have time you will be able to continue your ECMA6 learning. There are two labs in this section, each taking a week to complete:

  1. Domain-Driven Design
  2. Software Architecture

4 Software Quality

This topic looks at a range of topics that focus on how we can produce robust code. This topics are:

  1. Software Quality
  2. Software Testing
  3. Profiling and Documentation

DevOps

The final topic covers the skills and understanding needed to deploy and manage the code. Topics are:

  1. Docker and Deployment
  2. Continuous Delivery