Setting the Scene
Figure 1
Section 1: Setting Up Environment For Collaborative Code Development
Figure 1
1.1 Introduction to Our Software Project
Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

1.2 Virtual Environments For Software Development
Figure 1

1.3 Integrated Software Development Environments
Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6
Virtualenv Environment from the list on the left. Ensure
that the Select Existing (or
Existing environment) checkbox is selected within the popup
window. If you have a Type menu, select
Python. In the Interpreter (or
Python path) field point to the Python 3 executable inside
your virtual environment’s bin directory (make sure you
navigate to it and select it from the file browser rather than just
accept the default offered by PyCharm). Note that there is also an
option to create a new virtual environment, but we are not using that
option as we want to reuse the one we created from the command line in
the previous episode.
Figure 7

Figure 8

Figure 9

Figure 10

Figure 11
+ icon at the top of the window. In the
window that appears, search for the name of the library
(pytest), select it from the list, then select
Install Package. Once it finishes installing, you can close
that window.
Figure 12

Figure 13
Add new run configuration... then
Python.
Figure 14
Script path field
select the folder button and find and select
inflammation-analysis.py. This tells PyCharm which script
to run (i.e. what the main entry point to our application is).
Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

1.4 Software Development Using Git and GitHub
Figure 1
Figure 2

Figure 3
Figure 4

Figure 5

1.5 Python Code Style Conventions
Figure 1

Figure 2

Figure 3

1.6 Verifying Code Style Using Linters
1.7 Optional Exercises
Section 2: Ensuring Correctness of Software at Scale
Figure 1
2.1 Automatically Testing Software
2.2 Scaling Up Unit Testing
2.3 Continuous Integration for Automated Testing
Figure 1

Figure 2

Figure 3

Figure 4

2.4 Diagnosing Issues and Improving Robustness
Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

2.5 Optional Exercises for Section 2
Section 3: Software Development as a Process
Figure 1
3.1 Software Requirements
3.2 Software Architecture and Design
Figure 1

Figure 2
3.3 Code Decoupling & Abstractions
3.4 Code Refactoring
3.5 Software Architecture Revisited
Section 4: Collaborative Software Development for Reuse
Figure 1
4.1 Developing Software In a Team: Code Review
Figure 1
Figure 2
New pull request button.
Figure 3
Create pull request button to open the request.
Figure 4
Create pull request button
(in the new window).
Figure 5

Figure 6
Locate up the pull request from the GitHub’s
Pull Requests tab on the home page of your fellow learner’s
software repository, then head to the Files changed tab on
the pull request. 
Figure 7
When you find a line that you want to add a comment to, click on
the blue plus (+) button next to the line. This will bring up a “Write”
box to add your comment.
You can
also add comments referring to multiple lines by clicking the plus and
dragging down over the relevant lines. If you want to make a concrete
suggestion or a change to the code directly, such as renaming a
variable, you can click the Add a suggestion button (which
looks like a document with a plus and a minus in it). This will populate
the comment with the existing code, and you can edit it to be what you
think the code should be.
Figure 8
Note: you can only make direct code suggestions
if you are a collaborator on a repository. Otherwise, you can add
comments only.
GitHub will then provide a button for the code author to
apply your changes directly.
Figure 9
Finish your review button at the
top of the Files changed tab.
In the comment box, you can add any other comments that
are not associated with a specific line. For example, you can put the
list of tests that you want to see added here.Figure 10
Comment,
Approve or Request changes.
Figure 11

Figure 12
4.2 Preparing Software for Reuse and Release
4.3 Packaging Code for Release and Distribution
Section 5: Managing and Improving Software Over Its Lifetime
Figure 1
5.1 Managing a Collaborative Software Project
Figure 1

Figure 2

Figure 3

Figure 4

Figure 5
Regardless of which project type/view you select, you can easily switch
to a different project layout later on.Figure 6
After it is created, you should also populate the description of
the project from the project’s Settings, which can be found by clicking
the ... button in the top right corner of the project. 
After adding a description, select Save.
Figure 7

Figure 8

Figure 9

Figure 10
Finally, you can change the way you view your project by adding
another view. For example, we can add a Table view to our Board view by
clicking the New button and selecting it from the drop down
menu. 
5.2 Assessing Software for Suitability and Improvement
5.3 Software Improvement Through Feedback
Figure 1

Figure 2

Figure 3

Figure 4

Wrap-up
Figure 1

Figure 2

Figure 3
