FIGURES
Figure 4.1 The traditional phases of the software development lifecycle
Figure 4.2 The Waterfall model
Figure 4.3 The incremental model
Figure 4.4 How to implement the iterative methodology
Figure 5.1 Programming language trends based on numbers of jobs posted worldwide on Indeed.com
Figure 5.2 Top languages according to GitHub, 2014–2019
Figure 5.5 A post-conditioned iteration
Figure 5.6 First pass of a sorting algorithm
Figure 5.7 Second pass of a sorting algorithm
Figure 5.8 Third pass of a sorting algorithm
Figure 5.9 Fourth pass of a sorting algorithm
Figure 5.10 A class showing encapsulated properties and methods
Figure 7.1 Automatically generated HTML documentation for a Python function
Figure 9.1 Postcodes.io’s web-based API
Figure 10.1 Software development using the V-model
Figure 11.1 A simple entity relationship diagram
Figure 11.2 Revision of the entity relationship diagram in Figure 11.1
Figure 11.3 Correction of the entity relationship diagram in Figure 11.2
Figure 11.4 A detailed entity relationship diagram
Figure 11.5 A data flow diagram for an invoicing system
Figure 11.6 Invoicing flowchart
Figure 11.7 A typical wireframe diagram
Figure 11.8 A Unified Modelling Language use case diagram for an invoicing system
Figure 11.9 Bus pass generator flowchart to create one bus pass each time the program executes
Figure 11.10 Bus pass generator flowchart to create multiple bus passes
Figure 13.2 Agile Scrum framework
Figure 13.3 Sample user stories
Figure 14.1 DevOps exists at the heart of three disciplinary areas
Figure 14.2 DevSecOps exists at the heart of four disciplinary areas
Figure 14.3 A simple web project’s structure
Figure 14.7 Containers versus virtual machines
Figure 15.1 Traditional approach to testing
Figure 15.2 Current thinking around testing
TABLES
Table 4.1 Changeover strategies
Table 4.2 Selection criteria for methodologies
Table 5.1 Popularity of programming languages in May 2020 compared to a year ago
Table 5.2 Data types with examples
Table 5.3 Comparison of input and output statements
Table 5.4 List of generic operators
Table 5.5 Types of data structure
Table 5.6 Example array containing EmployeeNames
Table 5.7 Example array containing vowels
Table 7.1 Naming convention examples
Table 7.2 Refactoring solutions for a range of code smells
Table 7.3 Pros and cons of pair programming
Table 9.1 Structured text file formats
Table 9.2 Reading different file formats
Table 9.3 RESTful interactions, demonstrating the uniformity of the request interface
Table 10.1 Comparison of testing and quality assurance activities
Table 10.2 Different environment tiers
Table 11.1 A decision table for testing a user login process (X indicates an action)