I. Assessment Requirements
Aim
The aim of this Assignment is to demonstrate knowledge about the analysis, design and development of a small software system.
You are required to produce an executable software solution to the specification and a short report documenting the development.
These two parts are detailed below
Software Solution
Your report should be a compressed folder (.zip) or a Linux archive (.gz) of the complete project, including all source code that you have written. When the files are extracted, the project should compile and run.
Report
The development must be documented in a short report.
II. Assessment Scenario/Problem
TAD - a utility that?s a little like touch
You must design, implement and test an OO class hierarchy to manipulate the filenames, timeStamps and EXIF data of JPG files. Your software should process an „edits? file which will describe a series of filenames and changes that should be applied to those files.
The simplest change/action is a Touch, which will change the „last modified? timestamp to the current system time; further BasicEdit changes might be Rename, Copy, Move or touch to a particular date/time. Advanced edits (ExifEdit?) will involve writing EXIF data to the JPG file; at this stage, only GPS location data (latitude, longitude & sometimes elevation) will be specified, but better designs will be easily extended.
The „edits? file will be a text file, either csv with a fixed format or XML which will be more flexible and extensible.
Your solution should read & parse the „edits? file and create corresponding objects; these must be managed with a collection of base-class pointers (or references) to dynamically allocated objects. The edits should be applied to the appropriate JPG files; this process should be logged (or at least reported).
The behaviour of the application may be controlled through a configuration file, which might specify such things a:
i) log details-level, format, path
ii) whether to take backups + paths
iii) batch or interactive mode
iv) auto-rename
v) touch - should take an optional parameter that is the date/time to set the file time setup to:ex: touch(2012-12-06 12:15:00 pm)
Use of libraries
It is expected that you will use an EXIF manipulation library (lab exercises will support this).
You can choose to integrate and use an XML library or to prepare your own functions – both approaches are broadly equal in difficulty and available credit.
It is NOT necessary to provide tools to create the „edits? file. SOFT40141: Software Engineering 2
III. Object-oriented Programming Assignment
The strands of the development that will form the framework of the assessment are:
i) class design – it is expected that inheritance will be used;
ii) The file manipulation, including parsing
iii) The manipulation of the object of your class hierarchy, using base class pointers;
iv) The quality and clarity of the code and report