0% found this document useful (0 votes)
2 views4 pages

Ambuj Kumar Software Engineering Assignment 3

The document outlines a Software Engineering assignment for a Canteen Management System, detailing project management aspects such as function point calculation, effort and cost estimation, risk identification, and a Gantt chart. It includes software design elements like a structured chart and pseudocode, as well as Python coding for the system's functionality. Additionally, it covers testing strategies, including cyclomatic complexity and various test cases.

Uploaded by

gorillagarden312
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views4 pages

Ambuj Kumar Software Engineering Assignment 3

The document outlines a Software Engineering assignment for a Canteen Management System, detailing project management aspects such as function point calculation, effort and cost estimation, risk identification, and a Gantt chart. It includes software design elements like a structured chart and pseudocode, as well as Python coding for the system's functionality. Additionally, it covers testing strategies, including cyclomatic complexity and various test cases.

Uploaded by

gorillagarden312
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Name: Ambuj Kumar

Course: BSc Computer Science


Roll No: APS23044
Subject: Software Engineering
Submitted To: Nita Mital Mam
Canteen Management System
Software Engineering Assignment

1. Project Management

1.1 Function Point Calculation

| Component Type | Count | Weight (avg) | Total |


|----------------------------|-------|--------------|-------|
| External Inputs (user input orders) | 2 | 4 |8 |
| External Outputs (bill display) | 2 | 5 | 10 |
| Internal Logical Files (menu) | 1 | 7 |7 |
| External Interface Files (none) | 0 | 5 |0 |
| External Inquiries (display menu) | 1 | 4 |4 |
| **Total FP** | | | **29** |

1.2 Effort and Cost Estimation

COCOMO Basic Model:


Effort (E) = a × (KLOC)^b
Assume: 0.3 KLOC, a = 2.4, b = 1.05

Effort = 2.4 × (0.3)^1.05 ≈ 0.72 Person-Months


Cost (₹25,000 per month): 0.72 × ₹25,000 = ₹18,000

1.3 Risk Identification

| Risk | Probability | Impact | Mitigation |


|-------------------------|-------------|--------|------------|
| Requirement changes | High | High | Freeze scope early |
| Time overrun | Medium | Medium | Use time tracking tools |
| Bugs in billing logic | Medium | High | Proper testing |
| Data loss | Low | High | Take regular backups |

1.4 Gantt Chart

| Task | Duration | Start | End |


|-------------------------|----------|-------|-------|
| Requirement Analysis | 2 days | Day 1 | Day 2 |
| Design (Structure + UI) | 2 days | Day 3 | Day 4 |
| Coding Module | 3 days | Day 5 | Day 7 |
| Testing & Debugging | 2 days | Day 8 | Day 9 |
| Documentation | 1 day | Day 10| Day 10|

2. Software Design

2.1 Structured Chart

Canteen Management System



├── Display Menu
├── Take Order
│ └── Input Item Number and Quantity
├── Calculate Bill
└── Show Bill

2.2 Pseudocode

Start
Initialize menu with items and prices
Display menu
Ask user for number of items to order
For each item:
Ask for item number and quantity
Add to order list and calculate total
Display final bill
End

3. Coding (Python)

menu = {
1: ("Burger", 50),
2: ("Pizza", 100),
3: ("Pasta", 80),
4: ("Coffee", 30),
5: ("Sandwich", 40)
}

order = []
total_amount = 0

num_items = int(input("How many different items would you like to order? "))

for _ in range(num_items):
item_no = int(input("Enter item number: "))
quantity = int(input("Enter quantity: "))

if item_no in menu:
item_name, item_price = menu[item_no]
amount = item_price * quantity
order.append((item_name, quantity, item_price, amount))
total_amount += amount
else:
print("Invalid item number! Skipping...")

print("\n------ Bill ------")


for item in order:
print(f"{item[0]} x {item[1]} = Rs. {item[3]}")
print(f"Total Amount: Rs. {total_amount}")

4. Testing

4.1 Cyclomatic Complexity


Estimated using the formula M = E - N + 2P. For the food ordering module, M = 3.

4.2 Test Cases

| Test Case ID | Input | Expected Output |


|--------------|----------------------------------|-----------------------------------|
| TC1 | Valid item 2, quantity 1 | Pizza - Rs. 100 |
| TC2 | Invalid item 6 | Error: Invalid item |
| TC3 | Multiple valid items | Total = Sum of item costs |
| TC4 | Quantity = 0 | Total = 0 for that item |
| TC5 | No input | Total = 0, no bill printed |

You might also like