How to design and structure a technical/programming Thesis
You almost certainly should shift the focus - just a little. Do not despair, it's more of seeing everything from a different angle.

Writing a thesis about a piece of software you've created while working on the thesis is at any rate dangerous.  As interesting as it might be (as a study in software engineering, maybe), it looks a little bit like researching a synthetic subject.  Most certainly, no one else will publish "about your software"...

The time-honored approach is to present a hypothesis.  Maybe it's about how some problem can be solved at all/faster than known before/much more elegant.  To achieve a fair and faithful presentation, you will have to write a little about the approach of your predecessors in the field.

Now enter your software.  For the written thesis, it's just a tool to examine your hypothesis.  Writing about some major design decisions should be in order, as long as they are strongly connected to the possibility of testing your hypothesis.

After presenting your newly forged tool, you can delve into test results, and present if they actually support or weaken your initial hypothesis (if there are any surprising results, be sure to mention them, even/especially if they seem to challenge your hypothesis - anything that "will warrant further examination" is good news in research).

This way, you will have created a thesis on a more general subject (using your software as a research tool), and there's your contribution to science, too. Others can check your results, try out and compare their own approaches and so on.  That's why your thesis should be about the problem and your proposed solution and it's properties, not about the tools you've created during that process.