Agile Principles and Lean Software Development Practices

12 Agile Principles

1. Planning Game

Customer + team decide scope → ensures relevant features

2. Small Releases

Frequent delivery → early feedback → fewer defects

3. System Metaphor

Simple shared vision → better understanding

4. Simple Design

Avoid overengineering → fewer bugs

5. Testing (TDD)

Write tests first → high reliability

6. Refactoring

Improve code continuously → maintainability

7. Pair Programming

Two developers → fewer errors, better quality

8. Collective Ownership

Anyone can improve

Read More

UML Modeling Techniques for POS and ATM Systems

Conceptual and Domain Modeling

Question 1: What is a Conceptual Model/Domain Model? Explain the step-by-step process to build it with a complete example from a POS system.

Answer:

Conceptual/Domain Model

A Conceptual Model is a visual representation of the real-world problem domain showing the key concepts (classes), their attributes, and relationships without considering system implementation.

Steps to Build a Conceptual Model

  1. Identify Nouns and Verbs from Requirements: Extract potential classes and
Read More

Binary Tree Operations, Sorting Algorithms & CLL Pseudocode

Binary Tree Insert

1. ptr = ROOT; flag = FALSE
2. While (ptr != NULL) and (flag == FALSE) do
3.   Case: ITEM < ptr->DATA
4.     ptr1 = ptr
5.     ptr = ptr->LCHILD
6.   Case: ITEM > ptr->DATA
7.     ptr1 = ptr
8.     ptr = ptr->RCHILD
9.   Case: ptr->DATA = ITEM
10.    flag = TRUE
11.    Print "ITEM already exists"
12.    Exit
13.  EndCase
14. EndWhile
15. If (ptr == NULL) then
16.   new = GetNode(NODE)
17.   new->DATA = ITEM
18.   new->LCHILD = NULL
19.   new->RCHILD 
Read More

C Programs: Tower of Hanoi and Singly Linked List

C Programs: Tower of Hanoi and Singly Linked List

Includes: Two C programs: a recursive Tower of Hanoi solver and a singly linked list implementation with stack demo. The original code has been preserved, formatted, and corrected for spelling, grammar, and readability.

Tower of Hanoi – C Program


#include <stdio.h>

void tower_hanoi(int n, char src, char dest, char temp) {
    if (n == 1) {
        printf("\nMove disk %d from peg %c to peg %c", n, src, dest);
        return;
    }
    tower_hanoi(
Read More

UML and System Modeling Techniques for Software Design

Chapter 5: System Modeling Fundamentals

System Modeling

  • System modeling is the process of developing abstract models of a system, with each model presenting a different view or perspective of that system.
  • System modeling has now come to mean representing a system using some kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML).
  • System modeling helps the analyst to understand the functionality of the system, and models are used to communicate
Read More

C Implementation: Circular Linked List for Polynomials

C Implementation: 3D Polynomials with Circular Linked Lists

This code defines structures and functions to manage multivariate polynomials (in terms of $x, y, z$) using a circular linked list to store individual terms.

Data Structure Definition

struct node {
    int coeff;
    int x_exp, y_exp, z_exp;
    struct node *next;
};

A pointer to the first term is initialized:

struct node *poly1 = NULL;

Term Insertion Function

insertTerm Function

Inserts a new term into the circular linked list. If the list is

Read More