Both of these methods require a set of edge-loops in the hull where you you would like the stringers to run.
A destructive method:
- Select the loops which will become your stringers, ShiftD duplicate them, and P separate the selection to a new object
- AltC in Object Mode, convert the new object into a curve
- Set a full bevel, minimum resolution, on the curve in its Data tab, adjusting the depth.
- In Edit Mode, all selected, set the Mean Tilt of the curve to 45 degrees
- Assign a Shrinkwrap modifier to the curve, target the Hull, 'Nearest Vertex', 'Keep above Surface' with an Offset sufficient to raise the stringers onto the hull.
This method has a few disadvantages: Without adding a profile object, you can only have square-profile stringers.. you can change the shape of the hull a little and the stringers will follow, but not far before the Shrinkwrap goes out of range, and has to be applied.
A non-desructive method:
- Make the selection of edge-loops as before, and make a Vertex Group from them
- AltD make an instance of the entire hull
Add the illustrated modifiers to the instance, aimed at the Vertex Group.
- The Bevel sets the width of your stringers (not necessarily 3 segments)
- The Mask hides all vertices outside the bevel
- The Solidify puts a thickness on the remaining faces, and sets the depth of your stringers
Now any changes you make to the hull will be reflected in the stringers, and widths and depths can be edited after the fact. You can add a further bevel, if you like, to round out the profile.
With appropriate crease values put into the Solidify modifier, and in any Solidify assigned to the hull, both can have a Subdivision modifier assigned, and stay in good shape.