Project Implementation and Testing

Added on - 13 Sep 2019

Trusted by 2+ million users,
1000+ happy students everyday
Showing pages 1 to 1 of 2 pages
PROBLEM: You must create a program that models the CTA and allows users to interact with the data itcontains. How the system is designed is entirely up to you, but it must meet the following requirements.USER INTERFACE REQUIREMENTS: ● Add a new station to the CTA system and be able to verify that thedata has been added ● ‘find’ (search) for a specific station; users should be able to verify that the search wassuccessful or unsuccessful ● Delete a station from the CTA system; user should be able to verify that the datawas deleted ● Generate a route from a starting station to a destination station (this should be able to handle thepossibility of a user needing to transfer from one line to another) ● Find the nearest station to a location ● Exitthe program The user should be continually prompted to choose between the above options and can exit themenu with the appropriate choice. The verification of each operation should be visible by console displays. Youmay of course add additional menu options.PROGRAMMING REQUIREMENTS: ● You should have at least 1 inheritance relationship. ● You should haveat least 1 association relationship where the ‘outer’ class definition has an instance of another user-definedclass. ● You should be able to have at least 1 overridden method that is NOT a usual instancemethod and isunique to your application (NOT toString() or equals()). ● You should be able to demonstrate polymorphism bydisplaying data to the console and by writing data to an output file. ● You should be able to search the datawhich is also verified by displaying to the console and by writing to an output file. ● You should read and storean input file of data. ● Your data should be stored in an encapsulated list. ● You should be able to add, delete,modify, and search the data. ● You should be able to write an output file that shows the results of running yourprogram using the following functionalities: add, delete, modify, search, and polymorphism. ● Your userinterface should be error-proof (your code should never quit with an error message!)DESIGN ISSUES: ● The entire project should be one package for ease of use. ● Each class should be in aseparate file named with unique names. ● Each class should have all usual instance methods. ● Each classshould ONLY have the necessary data members and the methods that manipulate these data members. ●Each method should have a specific task NOT multiple tasks ● Use the object-oriented language features tomake your code more efficient (inheritance, association) ● You should have MINIMAL code in your applicationclass and methods in the application class to minimize the size of the main() ● You should NOT have largeblocks of code.IMPLEMENTATION ISSUES: ● Use descriptive name for all variables. ● Use appropriate programmingconventions. ● Use methods to break up large pieces of code. ● No data handling in main(). Your file readshould be handled by another method. ● Your file I/O should implement try-catches.DOCUMENTATION: ● Each class should have documentation at the top describing the role of that class in theproject, author, and the date. ● All identifiers should be commented. ● Each method should have a briefdescription of its task.PHASE 1: PROJECT DESIGN 1. Describe the user interface. What are the menu options and how will the useruse the application? 2. Describe the programmers’ tasks. a. Describe how you will read the input file. b.Describe how you will process the data from the input file. c. Describe how you will store the data (what objectswill you store?) d. How will you demonstrate polymorphism? e. How will you add/delete/modify data? f. How willyou search data? 3. List the classes you will need to implement your application. 4. Draw a UML class diagramthat shows all classes in the program and their relationships. This can be done however you want. I useStarUML, which is available (free) here:, but you can use a graphics program or justdraw them by hand and scan them. 5. Think how you will determine if your code functions are expected.Develop a test plan based on the above description; how will you test that the expected outputs have beenachieved? Be sure this test plan is complete. Your test plan should minimally: a. Test each option in the menu-driven user interface for i. Expected behavior ii. Error-resistant input b. Test that you can demonstratepolymorphism with your application-specific method i. Test results should confirm polymorphismPHASE 2: PROJECT IMPLEMENTATION AND TESTING Step 1: Implement each of the classes in yourdesign as well as the application. Be sure to document your code. Each class should have the student’s name,date, and a description of the class in comments at the top of the file. Step 2: Test each of the classesaccording to your proposed test plan. Be sure to work with small pieces of the whole before trying to put theentire project together. Nothing is more discouraging than a large project with numerous errors that compoundone another to the point that it is impossible to know where to begin the debugging process. Step 3: Test yourapplication. Step 4: Carefully check your results with the expected results and debug the project. Step 5: Before
Desklib Logo
You are reading a preview
Upload your documents to download or

Become a Desklib member to get access