Use case diagram

Use case diagram summarized with example

Use case diagram 

Use case diagram is a diagram that describes the functional requirements of the system. It models the the external users of the system (actors) and the way the systems is used (use cases) – an actor of a system is not necessary a human being, it could be just another system.

Builder design pattern

Design Patterns Examples in Java – Builder Design Pattern

Builder design pattern

Have you ever created an object that has over 20 fields ?, have you ever tried to create this object using it’s constructor with several lines of code ? Have you ever needed to create an object without knowing its exact number of fields ? no worries, meet the Builder design pattern. 

Builder design pattern is an awesome pattern that eases the construction of complex objects.

Creational Design Patterns

Design Patterns Examples in Java – Factory Pattern

Factory Pattern

In part one of this series of design patterns articles we introduced design patterns, here we start with the first category of design patterns, as GOF describes , creational design patterns and the first one of them, is Factory Pattern .  

As the name describes, creational design patterns are about creating objects. They deal with objects creation mechanisms, trying to create objects in a way suitable to the situation. Creating objects using the basic form ( the new keyword in Java ) sometimes creates undesired designs like hard coded values, long constructors, and other complex situations. Creational design patterns tries to solve these problems in the best possible way.   

Design Patterns

Design Patterns Examples in Java – Introduction


This article represents an introduction to the world of design patterns. 

In my collection of design patterns articles, I try to introduce them from a different, more practical angle, than other articles I found online.

Most articles try to explain design patterns in an abstract way, and give approximate examples of them hoping they can be understood. I, on the other side, find it difficult to understand them that way. I prefer to have a real code example of each design pattern. So, let’s get started ! 

Isolation levels

Transaction Isolation levels, examples in Java with MySQL


Before we demonstrate Isolation levels, we must define transactions and what ACID model is. Isolation levels are one of ACID model properties, Isolation.

A Transaction represents a collection of operations executed sequentially as one single operation. Consider the well know example of money transfer between two bank accounts of Alice and Bon. Money transfer involves the following operations: 

  1. Read Alice’s account, by issuing a select statement, to check if Alice has X-amount or more for the transfer. 
  2. Read Bob’s account, by issuing a select statement, to check if Bob’s account can receive money. 
  3. Decrease Alice’s account by X-amount of money. 
  4. Increase Bob’s account by X-amount of money. 

In RDBMS for a unit of work to qualify as transaction it must comply to ACID model. So, what is ACID model ?

User stories INVEST model,

User stories INVEST model, do you really invest ?

User stories describe software functionalities that are valuable to either a user or purchaser of that software. In other words, they describe what the user can do with the software.

User stories also allow business guys (product owners, stake holders, business analysts ) to describe what functionalities the software has to cover. At the same time they allow the developers to analyze, decide on how-to, and estimate time for development. 

Almost every software project nowadays is developed in an agile development style. Depending on the team, each has its approach to be agile, sometimes they are truly agile more often they are not. 

Deep Working Philosophies, Choose The One Suites You.

Deep Work Philosophies, Choose The One Suites You.

Deep Work Philosophies “Concentration and mental toughness are the margins of victory.” Concentration and disconnecting from the outside is a key skill for achievement. In this article I am listing some concentration philosophies, as described in an amazing book that I’ve read “Deep Work, Rules for Focused Success in a Distracted World” by Cal Newport..