The aim of the assignment is to develop an application. The application should be written in the Java programming language. More specifically your application must be developed using Test Driven Development (TDD) with the JUnit testing framework. The developed code must be of high quality and should reflect industrial strength practices such as the use of –
- Coding standards
- Annotations (Java 5)
- UML class models
The application must be built within the Eclipse IDE.
The overall purpose of the application is to provide a tool that can be used to aid the software development process within an organization. Essentially the product should be a “Software Development Accounting Framework (A tool support for Agile SE)”. In some aspects the requirements are deliberately vague in order to simulate a real-life scenario, in which requirements are not always made fully clear by the client.
Eventually the developed system may be used as the back-end to several different applications, including a Web-based application and a Stand-alone desktop application. Hence, the developed system does not require a sophisticated graphical user interface (GUI). However there must be at least a basic (possibly text-based) interface which is capable of driving the main functionality of the application. Since this basic interface is likely to be used during development however the system should be designed so that this interface can be easily replaced in the future. In the same respect the developed system does not necessarily need to persevering data using a Relational Database Management System (RDBMS), but again system design should allow this in future versions.
The exact nature of the product must be specified as part of the development process. The list below should act as a prompt for the type of functionality that would typically be supported by such a system -
- Requirements management. (adding, editing, removing or requirements).
- Bug tracking (storing, reporting, fixing, tracing etc.)
- Storing of code/design reviews.
- Support for test plans.
- General project documentation.
- Job control and scheduling
- + ….anything else that is appropriate
You may wish to refer to the documentation for some common systems which offer similar functionality such as Bugzilla and Sourceforge Enterprise Edition.
Following deliverables for the developed system –
- A specification of the system to be developed.
- Any design artifacts (e.g. UML models) produced during the development process.
- The source code for the product itself
- The JUnit test code used during development of the product.
- Once added as a project to the Eclipse IDE the source should easily compile and be testable.