This paper presents a process to determine the design of an application by building and optimizing the network of semantic software components that compose the application. An application has to implement a given specification. We postulate that this specification is made up of atomic requirements, logically linked together. On one hand, each requirement is expressed in natural language and this expression is seen as the semantic description of the requirement. On the other hand, the off-the-shelf components used to build the application can also be described through a semantic description, called a "semantic card." Within this context, we consider a component fulfills a requirement if the "semantic distance" between their two semantic descriptions is minimal. Consequently, building an application consists of building and optimizing the logical network of all the semantic optimal couples "requirement-component." The paper presents an automatic building and optimization process, whose development and improvement are still in progress, and whose main advantage is to systematically derive the discovery and assembly of software components from the written specification of the application.
展开▼