These people may be part of the client's organization or a third party organization. At an even higher level of abstraction is the end-user's viewpoint. Normally the client's end-user will want to see a realistic representation of a working system and would rarely be interested in interpreting a diagramming language even if it is at a relatively high level of abstraction. Maintenance is done by modification and then transformation of the original specification. Functional prototyping is incorporated for direct generation of executable code from the functional specification and is used to model and exercise the logical capabilities of the system.
Performance modeling is incorporated later to provide accurate performance analysis.
In the context of traditional design, functional prototyping represents high level design while performance modeling represents detailed design. The recognition that software development should be evolutionary is not surprising. All advances are made this way and we would not have expected a modern, aerodynamic automobile to come off Ford's 1927 assembly line. We should also not expect the first version of a software system to come out of the software factory without room for improvement, and with all the features that will ever be needed. That software can be prototyped without a commitment to hardware is its greatest strength and the prototyping paradigms are simply combining this strength with good engineering practices.