Something I believe in is that the hardest part of any new job is figuring out how to think about it. So I like to start by getting as much as possible on paper before I start coding. To begin with, you need to know what the desired User Interface is like. How do the operators want to use it? What will be the desired workflow for the tool? What are the response time requirements.
At the same time consider the system from the standpoint of the physical process that you're interacting with. What are the operational constraints? What are your users going to want to do in the future? What are the inputs and outputs? What is the instrumentation like? What sorts of errors can occur and how fast do you need to be able to respond to them? How do you recover from errors?
Finally, what data are you going to be collecting? How fast? What are you going to do with it? Is the customer expecting a report of some kind? What is the data's lifespan? How will results be archived and managed?
The reasons for asking these questions up front are two-fold: First, the answers to these questions (and a bunch more) will provide the nucleus of a document that will tell your customer exactly what they will get and you exactly what you need to do. Second, it should be obvious that there is no "best" universal system architecture. Each possibility has its own advantages and disadvantages. Knowing the answers to these questions will help you understand your problem and the best architecture
for that particular problem. The biggest messes I have ever had to deal with (and in 20 years I've encountered some real architectural train wrecks) resulted from people deciding ahead of time what the system architecture was going to be and then trying to force-fit an application into a structure that didn't suit it.
Most important you need to sit down and have a heart-to-heart talk with your boss to set their expectations. If you do this right you may not develop any code at all for a couple weeks and if your boss is the type that "wants to see results" you need to educate them on what the results will look like. Sometimes its code, sometimes its documentation - but in either case it will be moving the project forward. And if your boss should acknowledge that "theoretically" working in this way is best, but then goes on to say, "...we don't have time to do it the right way..." Save yourself some time and start polishing up your resume now... it won't be long before you'll be needing it.
Mike...