Development environments and programming languages

Assignment Help Computer Engineering
Reference no: EM133296951

Aim:
You are provided with a non-object-oriented program and are required to develop an object-oriented design for this program, with a clearly reasoned argument for the details of the design. You are then required to refactor the given code according to this design. The written report forms the main basis of assessment.

Learning Outcome 1: Select appropriate design notations, software development environments and programming languages.
Learning Outcome 2: Read and understand object-oriented design documentation.
Learning Outcome 3: Make effective use of technical documentation.
Learning Outcome 4: Develop programs using the object-oriented approach.
Learning Outcome 5: Effectively plan the development of a practical project from design to implementation.

Assignment Specification

Aim
You are provided with a non-object-oriented program and are required to develop an object-oriented design for this program, with a clearly reasoned argument for the details of the design. You are then required to refactor the given code according to this design. The written report forms the main basis of assessment.

Details
This assignment concerns applying the basic principles of object-oriented programming to rewrite an existing non-object-oriented program.
You are provided with a Java program implemented in a single file (Application1.java). This program is intended to be used to organise collections of photographs and/or videos according to their dates. In order to determine the date for a given file, three techniques are supported:
1. Reading the embedded EXIF metadata (if there is any) to determine the original date of the photograph.
2. Examining the filename to see if any unambiguously recognisable date string can be found (for example rosegarden-21.Jan.2020.jpg).
3. Using the timestamp of the file.
The program allows you to use any or all of these techniques on a folder-by-folder basis, but if more than one technique is used they will always be tried in the order given above.

The program's inputs are as follows:

• a list of target folders containing photographs and possibly sub-folders containing photographs
• for each target folder, parameters that control whether the folder should be scanned recursively (entering into the sub-folders) or not, and which techniques should be used to determine the dates of the files (read the embedded EXIF metadata / parse the filename for a date string / use the file timestamp)
• an output folder to move the photographs to
• parameters to control the tree of folders to be created, that can consist of any combination of year folders, year-month folders, and year-month-day folders
• a simulation flag that determines whether the program will actually move the files (if simulation = false) or just print out the moves it would have made (if simulation = true).
You are provided with a ZIP archive containing a couple of folders of images to run the program on. When running the program you should do the following:

1. Extract the images from the ZIP file to a location of your choice (say C:\Users\yourname\oop).

2. Edit the main method of the program so that the commonParent variable is set to point to the place you put the image folders (for example C:\Users\yourname\oop).

3. Run the program in simulation mode first, to see what it is going to do (when testing you should probably stay in simulation mode most of the time).

4. Run the program for real and see if the PhotoOrganiserOutput folder is correctly created with a date based tree of folders inside it containing the organised pictures.

Note that after running the program for real, you no longer have your input folders with images in to use again. You will need to delete the PhotoOrganiserOutput folder and re- extract the images from the ZIP file to run the program again.

Your Task
You are required to analyse the existing application for the purpose of refactoring it into an object-oriented design. In order to understand the program you may need to refer to technical documentation such as the Java language APIs or online tutorials.

You must identify potential classes that could be used to improve the code and make it object-oriented. You should discuss your thinking and give reasons for why you think each class would be beneficial. How many classes are required or useful is up to you, and will be affected by your design decisions, but it is suggested that four or five might be typical, although it might be more if polymorphism is employed as part of your design.

You are encouraged to describe multiple different approaches to the organisation of classes in your design discussion but you should settle on a single set of classes as your final proposal.

You should depict your design proposal using a UML class structure diagram, but this diagram should only be used to illustrate your written description of the design. The diagram by itself is not enough and will gain little credit.

You should then refactor the provided code into the classes you have described. You should then describe this code as part of your report, including the relevant code in the body of your report as you describe it. The code should be presented clearly legibly using a fixed- width font, proper indentation and single spaced lines.

The final version of the program should also be uploaded as the source files in their appropriate package folders packed into a zip file. To do this, you should typically pack the main src folder of your IDE's project into a zip file.

Reference no: EM133296951

Questions Cloud

Obesity rate of mississippi by race : What hypothesis could you make with the obesity rate of Mississippi by race
How will you use the logos appeal : How will you use the logos appeal?How will you use the logos appeal?What evidence supports that this is the best solution?What research will you need to conduct
Good riparian management of fish bearing stream : You plan to use your fields for pasture what will you do to ensure good riparian management of the fish bearing stream at the back of your property ?
Terrestrial plants have evolved from aquatic plants : Scientists believe terrestrial plants have evolved from aquatic plants.
Development environments and programming languages : Develop programs using the object-oriented approach - Select appropriate design notations, software development environments and programming languages
Determine the profitability of the international business : Determine the profitability of the international business by using foreign exchangeDiscuss what you would need to consider when determining
Discuss the local challenges and opportunities : Discuss the local (Canada) challenges and opportunities Egmont Group of Financial Intelligence Units, explain what stood up for you and why?
What should abc do with regard to the issues raised : What should ABC do with regard to the issues raised by its various stakeholders?Assess ABC's corporate social responsibility using Carroll's four part CSR model
Anatomy affected and organ system involvement in copd : Anatomy affected and organ system involvement in COPD. Which of the 12 organ systems in the body IS MOST AFFECTED by this disease?

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd