首页 > > 详细

CAB301 Development of a Software Application for a Tool

 CAB301 DATA STRUCTURES AND ALGORITHMS

Development of a Software Application for a Tool
Library
Due Date: 24 May 2021
Weighting: 60%
Group or Individual: Individual
In this project you will develop a software application to solve a real-world problem. To
implement this software application, you will need to use some of the data structures and 
algorithms covered in this unit, to store, manage and manipulate data. It will be necessary to
design algorithms, to solve the computational problems arising during the development 
process, and to analyse the time efficiency of the algorithms.
1. Information, Operation Processes and Requirements
You are hired to develop a software system for a not-for-profit tool library. The solution you 
implement will manage the information about the tools, as well as the members of the tool 
library.
The tool library lends its tools free of charge to people in the community. All the tools in the 
tool library are obtained either from donations or purchased with funds raised by the
community.
In the tool library there are nine (9) categories of tools. In each of these nine (9) tools
categories, there are a few tool types. For example, one of the nine (9) categories is Painting 
Tools. Painting Tools are divided into five (5) types, including Sanding Tools, Brushes, 
Rollers, Paint Removal Tools, and Paint Scrapers. Appendix A shows the details of the nine 
(9) categories and those tool types in each of the tool categories. 
In each of the tool types, there may be multiple tools with different names. For example, 
Irwin 125mm Orbital Sander, Rocket Sanding Block Holder and PowerFit 120 Triangular 
Sander are three Sanding Tools. 
In tool library, there could be multiple tools with the same name. For example, there could be 
five (5) Irwin 125mm Orbital Sanders in the tool library.
When the tool library receives a tool, staff will register it with the software system. If the tool 
library has already had some tools that have the same name with the tool, the quantity of the 
tool needs to be increased in the software system. If the tool library does not have any tool 
that has the same name with the tool, the name and quantity of the tool received must be 
entered into the software system.
For a person to borrow any tool from the tool library, they must first become a member of the 
tool library. To obtain membership, the person must provide: • Firstname
• Lastname
• Contact phone number
1
CAB301 DATA STRUCTURES AND ALGORITHMS
These details must be entered into the software system before the person can obtain 
membership with the tool library, and only then may the person borrow tools from the tool 
library.
When a member borrows a tool from the tool library, details of this loan must be entered into 
the software system. The tool library has some specific restrictions and policies.
1. Information about every tool stocked by the tool library is stored together in a 
catalogue. Members may browse this catalogue to find information about each of the 
tools.
2. A member cannot borrow more than three (3) tools at the same time.
3. If a member finds a tool in the catalogue they want to borrow, but all of this tool type
is currently on loan, the member cannot obviously borrow the tool, nor can they 
reserve the tool.
4. When a member returns a tool or tools to the tool library, the loan record for the
tool(s) must be removed from the software system. Any other loans the member may 
still have should remain be in the software system.
The system analysis has already been done, and a high-level object-oriented design has been 
created. Your task is to follow the following iterative and incremental software development 
process to implement the object-oriented design. 
2. Software Development Process and Tasks
a. Design and implement a class, Tool, which implements the iTool interface to be 
provided. In this software application, each tool is represented by an object of class 
Tool.
b. Design and implement a class, ToolCollection, which implements the iToolCollection 
interface that has been provided with this assignment specification. In this software 
application, an object of the ToolCollection class is used to store and manipulate a 
collection of Tool objects. This class must use an Array or Arrays to store a 
collection of Tool objects. An object of this class can be used to store a collection of 
tools that are being rented by a member or a collection of tools of a tool type.
c. Design and implement a class, Member, which implements the iMember interface that 
has been provided with this assignment specification. In this software application, 
each registered member is represented by an object of class Member.
d. Design and implement a class, MemberCollection, which implements the 
iMemberCollection interface that has been provided with this assignment 
specification. A collection of registered members can be stored in an object of class
MemberCollection. This class must use a Binary Search Tree as a class member to 
store a collection of Member objects. An object of this class can be used to store all 
those registered members or to store a collection of members who are currently 
renting a particular tool.
e. Design and implement a class, ToolLibrarySystem, which implements the 
iToolLibrarySystem interface that has been provided with this assignment 
2
CAB301 DATA STRUCTURES AND ALGORITHMS
specification. The software uses the implemented methods in the class to implement 
the functionalities of the software system. For example, the system uses the 
implemented method, void add(iTool), in this class to implement the functionality of 
adding a new tool to the system.
f. Make good use of the above five classes to build a software application for the tool 
library, satisfying the following functional and non-functional requirements:
• The software application must be a Console Application of Microsoft Visual 
Studio 2019 on Microsoft Windows 10 and the programming language used in the 
software development must be C#.
• Both the staff and all the registered members can use the software application. The 
software application has a main menu and two sub-menus. The identity of a user 
must be verified in the main menu before he/she can use the system as a registered 
member or a staff member. It is assumed that the username and the password for the 
staff are ‘staff’ and ‘today123’, respectively. Members are verified using their first 
name, last name and password.
• The system should have a staff menu that allows a staff member to do the 
following:
 Add a new tool to the system
 Add new pieces of an existing tool to the system
 Remove some pieces of a tool from the system (the pieces of a tool cannot 
be removed if it is currently not in the tool library) 
 Register a member with the system
 Remove a member from the system
 Given the name of a member, find the contact phone number of the 
member
• The system should have a member menu that allows a registered member to do the 
following:
 Display the information about all the tools of a tool type selected by the 
user. The information includes the name of the tools and the quantity of the 
tools currently in the tool library
 Borrow a tool from the tool library, given the name of the tool, if the tool is 
available in the tool library
 Return a tool to the tool library
 List all the tools that are currently holding by the member 
 Display top three most frequently borrowed tools by all the members in the 
descending order by the number of times the tool has been borrowed. The 
display should include the name of the tool and the number of times that 
the tool has been borrowed by now. 3
CAB301 DATA STRUCTURES AND ALGORITHMS
• The main menu and the two sub-menus should look like:
g. Design a test plan and use the test plan to systematically test the functionality of the 
software system.
h. Write a technical report, which is structured as follows: • Table of contents
• Introduction – Briefly talk about the project and the software application that you 
have developed • Design and Analysis of Algorithms – design an efficient algorithm to solve the 
following computational problem(s) in the software application. Use the 
pseudocode notations introduced in Lecture 1 to describe your algorithm(s) and 
analyse the time efficiency of your algorithm(s).
 Display top three (3) most frequently borrowed tools in the descending 
order by the number of times that a tool has been borrowed.
4
CAB301 DATA STRUCTURES AND ALGORITHMS
• Software Test Plans and Test Results – design a test plan for each of functionality 
testes. In each of the test plan, please include the test scenarios/cases and test data 
for each of the test scenarios/cases. Please also provide your test results for each of 
the test scenarios/cases using screenshots. 
3. Assignment Requirements
• The software application must be a Console Application of Microsoft Visual Studio 
2019 and the programming language must be C#.
• You must not use any third-party C# class libraries.
• All the data structures and algorithms used in the software application must be 
covered in this unit.
4. Submissions • Your submission should be a single zip file named by your_student_number.zip and
comprises of a complete C# Console Application project and a technical report in PDF.
• Your submission must be submitted via the blackboard. Email submission is not accepted. • You may resubmit your assignment as many times as you wish before the deadline. If you 
submit your assignment multiple times, we will only mark the last submission before the 
deadline. 5
CAB301 DATA STRUCTURES AND ALGORITHMS
 
联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!