The two-time Stanley Cup-winner with the Chicago Blackhawks was considered among the best free agents available.
The 33-year-old Swede replaces Trevor Daley on the Stars' blue line after Dallas traded Daley to the Blackhawks in the Patrick Sharp deal.
Oduya has played 664 NHL games for the New Jersey Devils, Atlanta Thrashers/Winnipeg Jets and Blackhawks.
"Johnny is a steady, veteran presence on the blue line and he'll complement our group nicely," Stars general manager Jim Nill said. "He has achieved a great deal of success, winning the Stanley Cup twice, and his championship-mentality will be valuable in our room."