Define dp[v] = number of ways to reach node v from the source. Base case: dp[source] = 1 (one way to stay at source), all others start at 0. Process nodes in topological order. For each edge (u,v), add dp[u] to dp[v]. Why addition?
Each path to u can extend to v by following edge (u,v). So the total number of paths to v is the sum of paths from all nodes that have edges to v.