Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit



CPT109 C Programming and Software Engineering 1  ASSESSMENT 3

 

This assessment aims to evaluate students’ ability to develop a significant software solution to a real- world problem by working as a member of a team. Your team will be given a vague specification and is  expected  to  deliver  a  software  product  in  the  C  programming  language,  which  meets  the specifications before the due date. This size and type of the project is suitable for development in modular format and so teams are encouraged to devise program structures that allow various parts of the code to be developed independently by each team member. Being a team player means you are expected  not  only  to  apply  the  knowledge  gained  during  the  lectures,  laboratory  classes  and assignments to specify, design, implement, test and document your own code, but also to cooperate with your teammates so that the whole project will be delivered on time with good quality.Assessment Objective

Grouping

There are 360 students enrolled in this module, and you will be divided into groups consisting of 5 students (i.e. 72 groups). Groups will be formed in two stages as follows: Firstly, students will be given the option to choose their own group members. Students failing to form a group will then be randomly assigned to a group. Randomly formed groups will contain students with a range of ability based on their performance in previous assignments. Each group will then be randomly assigned one of 5 projects. Students wishing to form their own group should submit a hardcopy of the form provided (The group formation form is part of the Assessment 3 download package) having all details filled in and having been signed by all group members.

Final Deliverables

Each group should submit the following (only 1 submission per group):

1.    A report  (PDF  file), based  on  the  Software  Development  Process  applied throughout  this semester:

a)  Problem Statement (Specification: formulate the problem generally) (10%).

b)  Analysis:  interpret  the vague  software requirements provided by your  design brief and determine a very clear specification for your software design. (10%)

c)  Design: explain how your program is structured in terms of functional blocks and describe what each block does. A flow diagram may be useful here showing how functions interconnect and what data is passed between them. (10%)

d)  Testing: explain how the program has been tested and verified. Ensure any usernames or passwords required to test the program are listed in a table. (10%)


2.    All C source code (.c files) and the final executable demonstration file (.exe). The source code must be appropriately commented. Include any data files needed for execution. (50%)

3.    Contribution form (The contribution form is part ofthe Assessment 3 download package). The group should agree on the percentage of contribution of each member to each section and submit one copy of the form signed by all members.

NOTE: This may lead to different marks for different members of the same group. If necessary, the module leader may call group members for a short oral test.

Submission Procedure

All the above-mentioned files/deliverables (report, source code, executable, contribution form, must be compressed into a single file (.rar, .zip or .7z). The group leader (identified on the group formation form) must submit this single compressed file on Learning Mall using his/her account.

NOTE: Each group should only submit ONE copy on Learning Mall. Make sure your report has a title page and ensure ALL group members’ names and ID numbers are on it.

Marking Scheme

The general marking scheme is shown as follows:

 


 

Overall Report Quality

Problem Specification

Analysis

Algorithm Design

Testing

 

Implementation/coding style

Robustness


(50%)

 

 

 

10%

10%

(50%)

10%


 

Please refer to the file “CPT109 Marking Guidelines for Assignment 3” in the Assessment 3 download package on Learning Mall for details on marking descriptions.

Important notes:

University late submission policy will be applied.

University Academic Integrity policy will be applied rigorously.

You can find information relating to both ofthese in ebridge.


General Guidelines

The project descriptions are deliberately given in the form of simple customer specifications, which (as in the real world) are incomplete and often ambiguous, rather than a set of exact functional specifications. The group members should work methodically together (as the developers in a real world software project would) to:

1.    Analyse and formalise the customer specifications (at this stage, the various design choices and the software features can be subject to the group’s creativity).

2.    Design and decompose the functional and programmatic aspects of the problem and allocate constituent tasks to each group member. You are expected to use a top-down design which can then be modularised so that the tasks for each member can be clearly determined.

3.    Implement the product with frequent meetings to report progress and decisions to each other and re-evaluate the agreed courses of action.

4.    Implement test procedures, debug and correct the program. Each program module should be independently testable. Testing of each module and the program as a whole should be performed.

5.    Finalise the deliverables.

The specifications are only basic and most of the design choices should be made in your group meetings. The systems described within the different projects have a variety of different features and the disambiguation of the customer specifications can be based on the student’s logic and real life experience.

Assessment will be based  on whether the product/program  offers reasonable  functionality  and features (for the group size, allocated time and project difficulty), its design quality, flexibility, robustness, software bugs and other stated deliverables.

Ifthe group cannot implement all ofthe system features mentioned, it is better to have a few features fully working without run-time crashes than none of the required features working properly due to bugs or disrupting ripple effects between modules in the project. However, the corresponding marks deduction will be applied depending on the missing features.

If any group issues arise during the project, it is important to raise these with the module leader as soon as they do so that resolutions can be found quickly. It is important to work with your group, and to share the work accordingly. All group members should be responsible for some of the coding. Individuals may not produce your own work for submission independent ofthe group.


Project A: Bank Information System

Overall description:

Your team is employed by a bank to implement a system to manage the banking affairs. Customer specifications:

The implementation of the banking system should be able to provide facilities to:

•   Register a new customer and store details such as name, address, telephone number, 6-digit personal identification number (PIN) (security code for using the card) as well as some extra information e.g., type of identification presented for joining the bank, etc.

•   Store and manage customer account information. Customers can have one or more accounts and each account is uniquely identifiable by an account number generated by the system.

•   Collect and display bank statistical information for the bank manager e.g. number of customers, number of accounts.

•   Allow the following banking activities:

o Display current account balance

o Allow withdrawals from an account.

o Register a deposit

System Users

The system should be able to provide functionality for different users listed below:

•   Manager who will be able to:

o View banking statistics (as described above).

•   Bank clerk who will be able to:

o Add/delete/edit accounts for an existing customer.

o Make deposits to a customer’s account.

•   Customer who will be able to:

o Access their account information and perform banking activities except the deposit ofmoney.

o All banking activities require the customer to enter their PIN number.


Project B: Parking Management System

Overall description:

Your team is employed for the implementation of a parking payment system in a university car-park. The parking space consists of:

•   A 12x12x5 multi-story carpark, where each of the 5 floors is a 12x12 rectangular grid of car parking spaces.

•   A 30x2 grid of e-bike parking spaces each with an electrical recharge plug is provided.

•   A 30x4 grid of e-bike parking spaces with no recharge facility (cost should be lower than that for

a recharging space).

Customer specifications:

The implemented parking system should be able to provide facilities to:

•   Maintain a database of registered customers including their personal details: name, university ID number, phone number, account balance and staff or student status.

•   Registered customers should be able to pre-pay for their parking or to accumulate charges (up to a pre-set amount).

System Users

The system should be able to provide functionality for different users listed below:

•   Administrator who will be able to:

o Add/delete/edit customer’s personal details

o Add money to a customer’s account

o Set parking charges

•   Entry/Exit system worker who will be able to:

o Record the entry of a registered customer.

o Allocate a randomly chosen parking space to each car as it enters. For an e-bike, the customer should be asked if they would like a space with/without recharging and then a randomly chosen space is allocated.

o View current car-park occupation and number of free spaces.

o Free a previously allocated slot

o Charge the leaving customer accordingly.


Project C: Library Information System

Overall description:

The university library needs a new electronic rental system and your team is employed to build it. Customer specifications:

The implemented system should be able to handle the basic operations of a library including the following features:

•   Catalogue the library books; they should be stored in an indexed order e.g. by author name or shelf-mark.

•   The information about each book title should include: author(s), title, ISBN, subject, loan type (normal, short loan, no-take-out), shelf-mark, loan status, number of copies, etc.

•   Provide search functionality so that any user can find a book

System Users

The system should be able to provide functionality for different users listed below:

•   Administrator who should be able to:

o Add and edit book information

o Register new library users including name, university ID number, phone number, staff or student status, book loans, charges.

o Record the return of a book from a borrower and calculate any charges

•   Borrower (Staff or Student) who should be able to:

o Ability to borrow books

o Ability to edit their personal details

o Ability to renew their current loans for a pre-set number oftimes.


Project D: Coffee Shop Ordering System

Overall description:

Your team is employed by a new coffee shop to develop the software for an in-store terminal where customers can order their drinks.

Customer specifications:

The implemented ordering system should be able to provide facilities to:

•   Allow the various coffee based drinks on the menu (e.g. latte, mochaccino etc.) to be ordered where each coffee can be customised by: coffee bean type, milk type, hot/ice and has additional options including extra shot of coffee and number of sugars.

•   Determine the cost ofthe drink ordered.

•   Register and edit customer accounts, identifiable by a unique account number, which can be pre-

charged  with  money.  Customer  information  should  include  name,  telephone,  order  history, available balance.

System Users

The system should be able to provide the functionality for different users listed below:

•   Shop manager who will be able to:

o Edit the drinks and options menus.

o Set/alter charges for each drink/option.

o Add/remove/edit customer information.

o Provide statistics related to coffee sales.

•   Customer Self Service will be able to:

o Login to account and place an order.

o Review order history.

o Deposit money on the account.


Project E: Hotel Management Information System

Overall description:

Your team is employed by the conference centre hotel to implement a software system responsible for the overall management of room booking and customer records.

Customer specifications:

The implemented hotel systems should be able to provide facilities to:

•   Manage bookings for 60 rooms (10 per floor) and three classes of room (**, ***, ****). Each room is assigned a single price class.

•   Manage customer accounts. Customer accounts are identifiable by a unique account number.

•   Offer hotel business statistics e.g. numbers of hotel guests.

System Users

The system should be able to provide functionality for different users listed below:

•   Manager who will be able to:

o Set/amend classes for each room and the price per class.

o Manage a customer database (add/edit/remove customers)

o View hotel business statistics e.g. number of rooms booked, total income.

•   Receptionist who will be able to:

o Register a booking.

o Edit booking details e.g. period of stay or room class.

o Check-out customers by calculating charges.