(Warehouse Management (WM) Tool) - Assignment 1

An effective Warehouse Management (WM) Tool is essential for streamlining process, long range planning and optimization. It gives a better understanding of day-to-day operation with its summary information of how a warehouse is performing. The managers could use this data for making critical management decisions.


It is critical for the warehouse management to have an effective system in place due to various reasons such as security, accuracy, availability and so on. Therefore, you are asked to use a test-driven approach to develop the warehouse management tool which needs to meet the following requirements.


Functional Requirements

List of features include:

Ability to add/update records on the incoming stock and outgoing stock easily.
Track the stock in accordance to their category and sub-category.
Ability to search and display available stock for a particular category and/or sub-category.
Ability to search and display stock in accordance to price range and quantity in ascending and descending order.
Daily, weekly or monthly summary report of total incoming and outgoing stock details.
Provide login authentication process.
Login security feature with option of encrypting the data stored.
If there are three unsuccessful login attempts, the record will be marked as “locked” and one is not allowed to login to the system.
The system shall encrypt and decrypt the password.
Provide stock item alerts when it drops below a threshold set previously.

The WM may have the following interactive menu:

Add new stock
Remove stock
Edit stock item
Search stock item
Daily stock summary report
Weekly stock summary report
Monthly stock summary report
Yearly stock summary report


The WM allows new stock item’s details to be individually entered and then stored in a text file as the following format:


[Item ID]:[Item Description]:[Item Category]: [Item Sub-category]:[Amount Per Unit]:[Qty]: [Transacted date]




023:Samsung Phone XYZ:Electronics:Mobile Phone:300:100:15-Dec-12

053:Dan Sofa:Furniture:Sofa:1200:-10:15-Dec-12

045:Nike ABC:Shoes:Trainers:50:60:22-Dec-12

023:Samsung Phone XYZ:Electronics:Mobile Phone:300:-50:15-Dec-12

045:Nike ABC:Shoes:Trainers:50:-10:22-Dec-12


The colon (:) character is used to separate each piece of information.


Stock item     In          Out         Amount(Per Unit)   Total Amount

023            100         0           300               -30,000

053            0           10          1200              12,000
045            60          0           50                -3,000
023            0           50          300               15,000

045            0           10          50                500

A sample of the daily stock transacted is shown below.





You can also provide more information such as the total number of stock items available in the warehouse at any point in time.

Non-Functional Requirements

The system is to be implemented in C++ and is to run on a Linux OS.
The system is to use a simple textual “menu-select” style of user interface.

You need to elicit further requirements and specify them in much more detail in Software Requirement Specification by doing a further requirement analysis with your supervisor.


Note: The first part of this project (Assignment 1) involves planning and eliciting and analyzing requirements. The second part (Assignment 2) will involve designing, implementing and testing the system.





( Requirement / Task – Extra info )

The purpose of this assignment is to simulate the RUP approach to software development, starting with the requirements gathering, all the way to system analysis and design. (Note: for this Assignment, there is no need to implement (i.e. code) your system). However, your team must produce the necessary artifacts (i.e. documents) covering this aspect of your system development.

Form a group of 6 members, adhering to the following criteria:
group members must come from the SAME class, absolutely no "inter-class" group members
the no. of members in each group MUST BE EXACTLY THE SAME : 6, except in special situations where (# of students in a class) mod 6 != 0 (i.e. got remainder)
if possible, try to achieve a balanced gender ratio of 1 : 1, (no boy-bands / girl-generation)
in the event of special situations, the tutor will step in to assign "remainder students" to registered groups (i.e. some groups will have 7 members)

In general, your team should undergo (at least):
a) Inception phase : 1-2 iterations
b) Elaboration phase : 2-3 iterations
c) Construction phase : 2-3 iterations
d) Transition : 1-2 iterations

However, since this Assignment is mainly focusing on activities from Inception and Elaboration phases only, the iterations in Construction and Transition should be of lower priority

Based on the above, your team should have undergone a total of 3-5 iterations (in Inception + Elaboration phases). Therefore, the min. no. of:

a) formal meeting minutes should be = 3 !

b) formal work diary should be = 3  (for each team member, hence
5 team members x 3 = 15 work diaries for the whole team)



As mentioned in pgs 1-2 of this Qn Paper, each meeting minutes should cover the following points / decisions:

a) Progress status from individual members, who were allocated urgent action                             items in previous meeting [ 'N' paragraphs ]

b) Manager summarizes the overall progress of the entire system [ 1 paragraph ]

c) Brainstorm and discuss on any un-resolved issues / urgent action items from                          previous meeting [ 'N' paragraphs ]

d) Brainstorm and discuss on the remaining tasks (e.g. research / exploration /
development / testing / deployment ) to be done [ 'N' paragraphs ]

e) Decide how much time should be allocated to each issue / task [ 1 paragraph                         of bulleted points ]

f) Allocate tasks to team members [ use a table ]

g) Decide on the agenda (items/issues to discuss) for the next meeting [ 1                                    paragraph of bulleted points ]

Note : the paragraphs in "[ ]" is just a guideline on the format / usual length of the content!

As mentioned in pgs 1-2 of this Qn Paper, each work diary is like a "personal log" that tracks of a team member's personal progress. The diary should cover the following information:

a) The start + end date the period covers

b) What were the list of tasks allocated to you, (should be smiilar to the tasks                               allocated to you in the previous formal meeting)

c) For each task, discuss the following:
-           how much "actual time" you spent on it

-           did you breakdown the task into smaller sub-tasks?

-           are all the sub-tasks completed?

-           which sub-task(s) you faced difficulties, and how do you resolve it?

-           did you discuss your problems with fellow colleagues? What were the                                       remedial actions taken?

The roles required for this group assignment are:
Manager (1) - the "Team Leader"
Lead designer / implementer (1) - probably the same person, but the "lead" role could be split;
Designer / Implementer / Documentation (many)
Systems Integration and Testing (1)
The designated team leader should take the role of manager or of lead designer /             implementer. Each implementer is responsible for unit testing of his/her code.
Powered by