In shape optimization, the main results concerning the case of domains with smooth boundaries and smooth perturbations of these domains are well-known, whereas the study of non-smooth domains, such as domains with cracks for instance, and the study of singular perturbations such as the creation of a hole in a domain is more recent and complex. This new field of research is motivated by multiple applications, since the smoothness assumptions are not fulfilled in the general case. These singular perturbations can be handled now with new and efficient tools like topological derivative. In the first part, the structure of the shape derivative for domains with cracks is studied. In the case of a smooth domain, with boundary of class C1 or lipschitzian for instance, the derivative depends only on the perturbations of the boundary of the domain in the normal direction. This structure theorem is no longer valid for domains with cracks. We extend here the structure theorem to domains with cracks in any dimension for the first and second derivatives. In dimension two, we get the usual result, i.e. the shape derivative depends also on the tangential components of the deformation at the tips of the crack. In higher dimension, a new term appears in addition to the classical one, coming from the boundary of the manifold representing the crack. In the second part, the singular perturbation of a domain is approximated by using self adjoint extensions of operators. This approximation is first described, then it is applied to a shape optimization problem. An approximated energy functional can be defined for this model problem, and we obtain in particular the usual formula of the topological derivative. In the third part, a numerical application of the topological and shape derivatives is proposed for a non-linear problem. The problem consists in maximizing the energy associated to a Signorini problem in a domain . The evolution of the domain is done with the help of a levelset method to handle easily topological changes., En optimisation de formes, de nombreux résultats ont déjà été obtenus dans le cas de domaines à frontière régulière et pour des perturbations régulières de ces domaines. Par contre, l'étude de domaines non-réguliers, tels que des domaines fissurés par exemple, et l'étude de perturbations singulières telles que la création d'un trou dans un domaine est plus récente et plus complexe. Ce nouveau domaine de recherche est motivé par de multiples applications, car en pratique, les hypothèses de régularité ne sont pas toujours vérifiées. Les outils tels que la dérivée topologique permettent d'appréhender ces perturbations singulières de domaines et leur utilisation est maintenant fréquente. Dans la première partie, nous étudions la structure de la dérivée de forme pour des domaines fissurés. Dans le cas d'un ouvert régulier, de classe C1 ou lipschitzien par exemple, la dérivée dépend uniquement des perturbations de la frontière du domaine en direction de la normale. Ce théorème de structure n'est plus valable pour des domaines contenant des fissures. On généralise ici ce théorème de structure aux domaines fissurés en dimension quelconque pour les dérivées premières et secondes. En dimension deux, on retrouve le résultat usuel, à savoir qu'en plus du terme classique, deux nouvelles contributions apparaissent dûes aux extrémités de la fissure. En dimension supérieure, un nouveau terme apparaît en plus du terme classique, dû à la frontière de la variété à bord représentant la fissure. Dans la deuxième partie, nous étudions la perturbation singulière d'un domaine et nous modélisons cette perturbation à l'aide d'extensions auto-adjointes d'opérateurs. Nous décrivons cette modélisation, puis nous montrons comment elle peut être utilisée pour un problème d'optimisation de forme. En définissant une fonctionnelle d'énergie approchée pour ce problème modèle, on retrouve notamment la formule de la dérivée topologique usuelle. Dans la troisième partie, on propose une application numérique de la dérivée topologique et de la dérivée de forme pour un problème non-linéaire. On cherche à maximiser l'énergie associée à la solution d'un problème de Signorini dans un domaine . L'évolution du domaine est représentée à l'aide d'une méthode levelset.