Frankfurt airport recently discovered that due to frequent weather changes they have a bottleneck on some of the landing tracks. In order to find a solution, they first need to know which scenarios create the worst bottlenecks. So they decided to use a simulator where they configure and analyze multiple scenarios and hope that this will highlight them were the real problem is. So they reach out to their local top software shop and assign them this task. Here the chief designer starts working on the concept and after analysing all the facets of the software, he makes some design decisions which, he then passes on to you in order to create the simulator. Since the software will run on a multitude of operating systems in a very strict enterprise environement, he decides to use a classic Object-Oriented language: Java.
He will provide you: • the UML class diagram • the must-have Object Oriented design patterns
What you need to know in order to be on the team that develops the simulator is: • Interpreting class diagrams - this is the way the architect uses to communicate with you • Observer, Singleton and Factory design patterns - he knows that this will not be the final version of the simulator and he aims to extend it in order to address other needs that the airport may have • The basic syntax of Java and some of the core features of the language. - this is obvious, since this is the language agreed upon Object Oriented Design and design patterns are topics that cover by themselves thousands of pages, so feel free to explore this domain and you will discover a new way of thinking about software engineering. And who knows? Maybe you will take that architects place one day. Only a good implementation will be accepted, since this is the top software shop in the city. For this to happen, it will have a clean design, will be easy to read and understand by your peers and will be easy to change in case the requirements are modified.