-
Notifications
You must be signed in to change notification settings - Fork 3
Code Overview
The aim of this wiki page is to provide an overview of the software to someone who is looking to develop the software further. It is designed to given a programmer who has experience in Python and object-oriented design an idea of how the program functions and how the program is structured.
Model-View-Controller (MVC) is a software design structure which attempts to separate functional elements of a graphically based software project out into modular and reusable sections (see figure 3.1). A large draw to the MVC structure is the ability to change one of the elements - either the model, view or controller - without affecting the other two.
The model section of MVC represents the core data component of the program. For a website this may be the back-end database, and in the case of this program it represents the engine which is running the solar simulations.
The view aspect of MVC represents the graphical front end which faces the user. This handles taking input from the user and presenting the results.
The controller represents the business logic of the program. This is in a way the wiring between the view and model. When the user enters input, it is the controllers job to check that the inputs are sensible, and to inform the user if they aren’t. When a total set of valid inputs is received it is the controllers job to setup and invoke a simulation, and return the results back to the view for display.