Tools

During this lecture the following resources are recommended:

Concepts / Project

List of Concepts for the Project:

Requirements (Functional & Non-functional)

Guidance on writing requirements and examples.

Functional requirement: A functional requirement is a statement of what a product 
(system, subsystem, device, or software program) must do.  (example):
The control system shall prevent engine overspeed.


Non-functional requirement: A non-functional requirement is a statement of what a product 
is or how it will be constructed, or a constraint on how the product will be designed or will behave. (example):
Serial-digital communication between the system’s subsystems shall be accomplished via MIL-STD-1553B bus(es).

Frontend & Backend Communication

Typical communication uses HTTP methods (GET, POST, PUT, DELETE, etc.).

Common pattern: frontend issues HTTP requests to backend REST endpoints which return JSON.

Tests

Architecture — Client / Server Model

Client/server is a model of interaction in which a program (client) sends a request to another program (server) and awaits a response.

Save Data

Two common persistence formats:

  • JSON — human-readable, language-agnostic.
  • pickle — Python object serialization (use with caution; not secure for untrusted data).

Python Style Guide

PEP 8 – Style Guide for Python Code:

  • PEP8 — Style Guide.

Scrum

Agile framework to get work done as a team in small pieces at a time, with continuous experimentation and feedback loops along the way to learn and improve as you go

  • Scrum — Agile framework.
Scripts