Although programs can be nice stuff, if you use extracts the most likely calculation that you will have to do is how much DME, or water, or both to add to reach a certain target density.
Those are calculations that can be made "by hand" easily.
A kg of DME adds 380 "total density points" to the wort.
Let's say you find yourself with 23 litres at 1,048 and you want to hit 23 litres at 1,055. Normally with extracts you should land straight on the theoretical density, but things happen.
So, you have 48 points x 23 litres = 48 x 23 = 1104 "total points";
You want to reach 55 points x 23 litres = 55 x 23 = 1265 "total points";
You lack 1265 - 1104 = 161 "total points".
(Considering that the volume remains constant, you could have calculated those "total points" as 7 missing point per litre x 23 litres = 7 x 23 = 161).
A kg of DME adds 380 total points. You need to add 161 / 380 = 0,424 kg or 424 grams of DME.
Another case:
You have 19 litres @ 1,050 and you want 23 litres. If you add water, which will be your wort density?
You have 50 x 19 = 950 total points;
If you dilute those 950 points in 23 litres, you will have 950 / 23 = 41,3 points in each litre (1,0413).
Another case:
you want to make two operations at once: add water and add density.
Let's say you have 19 litres at 1,045 and you want 23 litres at 1,050. You want more water and more "total density points".
Water: that's easy, you need to add 4 litres;
Density: you start from 19 x 45 points = 855 and you want to obtain 23 x 50 = 1150 points. You must add 1150 - 855 = 295 total density points.
Considering that a kg of DME has 380 total density points, you must add 295 / 380 = 0,776 kg or 776 grams of DME.
Adding 776g of DME and 4 litres will bring you exactly at the volume and density which you wanted.