This week’s assignment consists of two parts: (a) Construction of a JavaFX GUI-based application that implements Caesar Cipher translation; (b) design of the seven user interface screens for the CapestraApp course project.

Programmer productivity is one of the greatest challenges for software engineers. Unfortunately, most programmers don’t produce a great deal of tested, debugged production code on a daily basis. This is in spite of the fact that writing pages and pages of code for a project isn’t difficult. The difficulties arise when the code must be debugged, tested, and transformed into high-quality, easily maintained, production-quality code. An excellent approach to increasing programmer productivity is to make use of existing high-quality production code. This is called code reuse. In this week’s assignment, you will reuse the Caesar Cipher translate() method that you developed for Week 1.

Part 1 Programming a JavaFX GUI-Based Application
Part 1 of this week’s assignment is programming using JavaFX to build an interactive GUI-based program that implements the Caesar Cipher translation algorithm that was described last week. The GUI that you will develop is the “front-end” of the project. The “back-end” is the translate() method that you will (re-)use.

Implementation Notes for the CaesarCipherFX Program
You should create a Requirements document that details what your program needs to accomplish. You should create an input-process-output (IPO) chart to elaborate the requirements. You should design an interface that contains all the controls necessary for a user to interact with your program. This is all “planning” – specifying the “What” in detail

Part 2 Designing GUI Screens
Part 2 of this week’s assignment is to create “mock-ups” for the seven user interface screens required for the CapestraApp project. You should read the CapestraApp Software Requirements Specification (the SRS) to see what functionality the screens must support. Pay special attention to Sections 2.2, 3.1, and 4.

Implementation Notes for the GUI Design for Seven Screens
You may use any tools you wish to design the screens. The Web-based Moqups app is highly recommended. Microsoft Visio also is a good choice. You even can use pen and paper and scan your designs using your smartphone (not as highly recommended).

The important things to note are the following:

Which controls must be in place so that the SRS-required functionality is provided.
What would be expected of a high-quality, professional-grade user interface.
How easy it will be for you to implement each screen using what you know about JavaFX.
Note: You will use your designs as guides for implementing the CapestraApp screens that constitute your course project. This implementation (programming) will begin next week. Your designs are not cast in stone—so if you find that you need to modify your designs during implementation, this is not a problem.